JQUERY,为iFrame中的项添加事件监听器?

时间:2010-07-18 00:19:27

标签: javascript jquery javascript-events webkit

在整个iframe中给出一个<span class="fineme">的iframe ...

是否可以添加一个带有jQuery的事件监听器,以便在用户将鼠标移动到iframe中的.fineme时,从顶部/父窗口触发ALERT?

3 个答案:

答案 0 :(得分:5)

有关访问iframe内容文档的信息,请参阅http://api.jquery.com/contents/

您问题的解决方案可能是:

$("iframe#name").contents().find(".fineme").bind("mouseover", function() { alert("Found me"); });

答案 1 :(得分:1)

是的,似乎默认情况下,如果从父窗口运行选择器,它将无法在iframe中找到元素。但是,您可以明确地为jQuery提供上下文以查看iframe内部。

这样做的一种方法是:

var iframe = $("#someIframeId");
$(".fineme",iframe.get(0).contentDocument).mouseover(function(){alert('hi')});

注意:这仅在父网站和IFrame位于同一网域时才有效。有关详细信息,请参阅:http://madskristensen.net/post/Iframe-cross-domain-JavaScript-calls.aspx

答案 2 :(得分:1)

我遇到了类似的问题,并找到了适合我的解决方案。试试这个:

document.getElementById('iframe_id').contentWindow.$('.fineme').on( ... )

它适用于任何jquery函数,但会监听iFrame dom的jQuery上的事件。