Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 向iFrame中的项添加事件侦听器?_Javascript_Jquery_Webkit_Jquery Events - Fatal编程技术网

Javascript 向iFrame中的项添加事件侦听器?

Javascript 向iFrame中的项添加事件侦听器?,javascript,jquery,webkit,jquery-events,Javascript,Jquery,Webkit,Jquery Events,在整个iframe中给定一个带有的iframe 是否可以使用jQuery添加事件侦听器,以便在用户将鼠标从顶部/父窗口移到iframe中的.fineme上时触发警报?有关访问iframe内容文档的信息,请参阅 您的问题的解决方案可能是: $("iframe#name").contents().find(".fineme").bind("mouseover", function() { alert("Found me"); }); 是的,默认情况下,如果从父窗口运行选择器,它似乎不会在ifram

在整个iframe中给定一个带有
的iframe

是否可以使用jQuery添加事件侦听器,以便在用户将鼠标从顶部/父窗口移到iframe中的
.fineme
上时触发警报?

有关访问iframe内容文档的信息,请参阅

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

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

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

一种方法是:

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

注意:只有当父站点和IFrame都在同一个域上时,此操作才有效。有关这方面的更多信息,请参阅:

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

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

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

适用于我。可能该类应该是
.findme
而不是
.fineme
?您可能需要将其包装在检查中,以确保已加载iframe。如果您试图在iframe加载之前访问内容,您将无法找到它。使用$(“iframe#name”).load()将其包装为+1,以等待加载()-如果您以编程方式(例如通过
srcdoc
)编写iframe内容,则似乎必须始终这样做。需要注意的一点是:要使其工作,iframe必须与页面位于同一域中。如果它们在不同的域上,我认为浏览器安全性会阻止这项工作。这对原生jQuery很好,但是jQuery UI对象呢?例如,如果在元素上调用Resizeable,它将不具有鼠标上下文。您必须单击可调整大小的控制柄,并将鼠标拖动到iframe外部,使其响应鼠标移动。