陷阱点击IFRAME

时间:2012-01-30 15:46:40

标签: javascript jquery iframe popup

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

<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无法捕获点击事件。 有什么办法吗?

3 个答案:

答案 0 :(得分: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资源与其父页面位于同一域中时,才能访问它。

答案 1 :(得分:1)

除了相当顽皮并在IFRAME(点击顶部)的顶部放置一个隐形元素之外,我认为你运气不好,因为我认为IFRAME中的事件根本没有冒泡。在这里小心 - 你处于危险的境地。塔尔是怪物。

P.S。一个选项是让IFRAME指向你网站上的一个页面,你可以添加一个onclick事件 - 然后在父元素上激活一个函数/事件 - 但是你仍然会失去运气它点击了我认为的FLASH对象。

答案 2 :(得分:1)

您可以尝试利用YouTube API。

http://code.google.com/apis/youtube/js_api_reference.html#Adding_event_listener

虽然它有限,但你可以做你需要的。