2009-10-31 51 views
15

如何将点击事件处理程序附加到iframe中的元素?甚至在iframe中使用jQuery的元素附加点击处理程序

这里是我的尝试并不起作用:

$("#parent iframe").contents().find("a").live("click", function() { 
    alert ("test"); 
    return false; 
}); 

的iframe是在同一个域。

+1

只要主页面和iframe来自同一个域,您的代码就会工作。 – 2009-10-31 23:16:12

回答

11

发现问题。 LIVE在iframe内不起作用。切换到绑定工作正常。将代替手动事件委派。

+1

请注意,这是远远不够的唯一的问题,你将试图脚本一个窗口/框架与生活在一个不同的jQuery的副本。对于任何复杂的事情,您都需要在两个框架中加载jQuery的副本。 jQuery针对方便的单窗口脚本进行了优化,而不是跨窗口脚本(这本质上更复杂,jQuery与否)。 – bobince 2009-11-01 00:42:49

0

基本上可能不是猜测内容可能来自不同的域(通常使用iFrames)。这些文章解释了为什么:

iframes and cross domain security Cross-Domain Ajax Insecurity

另外,您将需要修改源代码中的iFrame(如果你拥有控制权),或者你可以要求用户减少他们的浏览器安全性(也许是可能的在内联网上,但即使这样也不是一个好主意)。

+0

这是在同一个域名上,但我会感谢你说它应该工作,我会再看一遍。 – Jourkey 2009-10-31 23:20:44

相关问题