如何将事件绑定到本地iframe中的元素?

首先,父页面和iframe都托管在同一台服务器上(我在WAMP上的localhost),所以同样的原始策略不应该是一个问题。

我无法触发工作。 我的iframe的id为iframe

 $(window).load(function(){ //iframe ad hovers $('#iframe').contents().find('body div').click(function(){ alert('do something here'); }); }); 

我究竟做错了什么?

我不确定浏览器是否会将的窗口上下文中的“click”事件传播到包含窗口。 加载到的文档是否有自己的jQuery副本? 如果是这样,你可以试试这个:

 $('#iframe').contents().$.find('body div').click(function(){ alert('do something here); }); 

该更改使窗口中的jQuery代码处理该事件。

好吧,我认为@jAndy是正确的,应该按原样运行 – 你必须确保框架中的文档已加载。 试试这个:

 $('#iframe').load(function() { $(this).contents().find('body div').click(function() { alert("hi"); }); }); 

你的代码没错; 我认为你唯一的错误就是你要求在父页面加载iframe的内容,这意味着在这个阶段iframe还没有加载。

试试我的快速示例http://jsfiddle.net/UFM44/4/它与你的代码相同但我在点击“now”链接后触发它。 如果您随后单击徽标,则可以看到alert()消息。