在整个iframe中给出一个<span class="fineme">
的iframe ...
是否可以添加一个带有jQuery的事件监听器,以便在用户将鼠标移动到iframe中的.fineme时,从顶部/父窗口触发ALERT?
答案 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上的事件。