首先,父页面和iframe都托管在同一台服务器上(我在WAMP上的localhost),所以这里的原始策略不应该是一个问题。
我无法触发工作。我的iframe的ID为iframe
。
$(window).load(function(){
//iframe ad hovers
$('#iframe').contents().find('body div').click(function(){
alert('do something here');
});
});
我做错了什么?
答案 0 :(得分:7)
我不确定浏览器是否会将{click}事件从 <iframe>
的窗口上下文传播到包含窗口。加载到<iframe>
的文档是否有自己的jQuery副本?如果是这样,你可以试试这个:
$('#iframe').contents().$.find('body div').click(function(){
alert('do something here);
});
该更改使 <iframe>
窗口中的jQuery代码处理事件。
我认为@jAndy是正确的,应该按原样工作 - 但你必须确保框架中的文档已加载。试试这个:
$('#iframe').load(function() {
$(this).contents().find('body div').click(function() { alert("hi"); });
});
答案 1 :(得分:0)
你的代码没错;我认为你唯一的错误就是你要求在父页面加载iframe的内容,这意味着在这个阶段iframe尚未加载。
试试我的简单示例http://jsfiddle.net/UFM44/4/ 它与您的代码相同,但在点击“now”链接后触发它。如果您再点击徽标,则可以看到alert()消息。