2012-01-30 92 views
1

我有一个iframe,里面有一个从somwhere视频链接。 我想在点击iframe时弹出div。点击IFRAME的陷阱

<a href="javascript:alert();" class="iframelink"> 
       <iframe src="http://www.youtube.com/embed/zDNXx-PgU3k" width="213" height="195" frameborder="0"></iframe> 
      </a> 


$('.iframelink').click(function(){ 
     alert('iframe clicked. Open popup.'); 
}) 

怎么样?但因为实际上是另一个页面javascript不能捕捉点击事件。 有什么办法吗?

+0

你试图捕获什么点击事件? – hunter 2012-01-30 15:49:25

+0

@ hunter onClick? – reporter 2012-01-30 15:51:02

+0

指针在元素内时按下鼠标按钮。 鼠标按钮在指针位于元素内时被释放。 – gandil 2012-01-30 15:55:12

回答

2

由于您必须在iframe中的链接上附加处理程序,因此应该在iframe中找到它。尝试这个。

$('a.iframelink iframe').contents()//Will get iframe contents 
.find('videoLinkSelector')//Pass the required selector 
.click(function(){ 
    //Write your code here 
}); 

contents()参考:http://api.jquery.com/contents/

请注意,您只能访问iframe的资源,只有当它是在同一个域作为其父页。

+0

由于相同的原产地策略,如果iframe内容来自另一个域,则这将不起作用。 – chrisv 2012-04-25 06:39:41

+0

是的,你无法访问其他域的任何资源。 – ShankarSangoli 2012-04-25 15:01:01

1

除了相当调皮和在IFRAME顶部放置一个隐形元素(点击顶起)之外,我认为你运气不好,因为我认为IFRAME内部的活动根本不会冒泡。小心这里 - 你处于危险的境地。塔尔是怪物。

P.S.一种选择是让IFRAME指向你网站上的一个页面,你可以添加一个onclick事件 - 然后会在父元素上触发一个函数/事件 - 但是当你的运行时间仍然不够用时它涉及点击我认为的FLASH对象。

+0

实际上,我想在iframe内显示视频,但尺寸很小。当用户点击iframe运行视频时,我会弹出一个框并运行视频。我知道,但有什么解决方法吗? – gandil 2012-01-30 15:51:18

+0

啊,我看到了 - 我错误地理解了你想要达到的目标。猎人的答案可能更适合。顺便说一下,为什么你需要在iframe中显示视频 - 你可以在你的页面上显示视频缩略图,并附上一个onclick事件?当然是 – Seidr 2012-01-30 15:53:01

+0

。有没有什么办法只显示从div里的url的视频缩略图? – gandil 2012-01-30 15:57:25