考虑到与<span class="fineme">
整个iframe中的iframe ...JQUERY,将事件监听器添加到iFrame中的项目?
是否有可能与jQuery添加事件侦听器来触发警报随时随地用户在.fineme在iframe中移动他们的鼠标,从顶部/父窗口?
考虑到与<span class="fineme">
整个iframe中的iframe ...JQUERY,将事件监听器添加到iFrame中的项目?
是否有可能与jQuery添加事件侦听器来触发警报随时随地用户在.fineme在iframe中移动他们的鼠标,从顶部/父窗口?
查看http://api.jquery.com/contents/用于访问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在同一域中这只会工作。欲了解更多信息,请参阅:http://madskristensen.net/post/Iframe-cross-domain-JavaScript-calls.aspx
有趣,但似乎没有工作? – AnApprentice 2010-07-18 00:46:43
有一点需要注意:为此,iframe必须与页面位于同一个域中。如果他们在不同的领域,我认为浏览器的安全性,我停止工作。 – 2010-07-19 01:01:34
这适用于原生jQuery,但对于jQuery UI对象呢?例如,如果您调用元素上的可调整大小,它将不具有鼠标上下文。您必须单击可调整大小的手柄,然后将鼠标拖到iframe之外,才能响应鼠标移动。 – naivedeveloper 2011-06-01 17:38:48
我有一个类似的问题,并找到了适合我的解决方案。试试这个:
document.getElementById('iframe_id').contentWindow.$('.fineme').on(...)
它适用于任何jQuery的功能,但监听对iFrame的DOM的jQuery的事件。
有趣,但这似乎不工作? – AnApprentice 2010-07-18 00:47:04
适合我。也许这个类应该是'.findme'而不是'.fineme'? – 2010-07-18 04:05:08
您可能需要将其包装在一张支票中以确保iframe已加载。如果您在加载iframe之前尝试访问内容,您将无法找到它。将它包装在$(“iframe#name”)中。load()。 – naivedeveloper 2011-06-01 17:37:36