如何将click事件分配给ifraem中的元素?
我开了一个帖子来检测是否加载了iframe。
How can I detect whether an iframe is loaded?
我还有进一步的问题
如何在iframe中分配事件或操作元素?
我试过..
$(function(){
$('#click').on('click', function(){
var ifr=$('<iframe></iframe>', {
id:'MainPopupIframe',
src:'http://heera.it',
style:'display:none',
load:function(){
$(this).show();
alert('iframe loaded !');
}
});
$('body').append(ifr);
//when I click the home page button, nothing happen...
$('#menu-item-277').click(function(){
alert('click!!!');
})
});
});
感谢您的帮助。
答案 0 :(得分:1)
由于跨域安全限制(相同的原始策略),如果iframe的内容存在于父页面以外的域中,则无法进行此操作。
如果您有权访问这两个域,则可以尝试使用Ben Alman的优秀PostMessage插件来设置跨域/跨浏览器iframe通信流。然后,您可以绑定到本地DOM元素的click
事件,并向iframe发送消息,其中轮询循环可以监听它并触发iframe中的click
事件。
我希望这会有所帮助。
答案 1 :(得分:0)
你不能归因于same origin policy。基本上,iframe必须与尝试修改它的脚本位于同一个域中。