Javascript Iframe事件到父级
所以,我想在我的iframe中触发一个事件,比如:Javascript Iframe事件到父级,javascript,jquery,html,iframe,Javascript,Jquery,Html,Iframe,所以,我想在我的iframe中触发一个事件,比如: $('body').trigger('my_event'); 我想在包含iframe的主页上绑定此事件: $('iframe').find('body').bind('my_event', function() { console.log('My event !'); } 但这是行不通的。但是,我可以从iframe到父实体触发事件。所以我(在我的iframe中): 在我的主页上: $('body').bind('my_event',
$('body').trigger('my_event');
我想在包含iframe的主页上绑定此事件:
$('iframe').find('body').bind('my_event', function()
{
console.log('My event !');
}
但这是行不通的。但是,我可以从iframe到父实体触发事件。所以我(在我的iframe中):
在我的主页上:
$('body').bind('my_event', function()
{
console.log('My event !');
}
这很有效为什么?
是的,我确实知道跨域政策。我的主页和iframe都来自同一个域
谢谢 这可能是因为您引用
$('iframe').find('body')
时尚未加载它
尝试使用委托绑定,类似以下内容:
$(document).on('my_event', 'iframe body', function(e){
console.log('My event !');
});
查看此项了解更多信息:
更新:
看起来父级不会从iframe捕获事件,除非它在其元素上被显式触发
例如,在iframe中:
parent.$(parent.document).trigger("my_event");
在父项中:
$(document).on('my_event', function(e){
console.log('My event !');
});
谢谢你的主意,但不幸的是,它似乎不起作用(原因:因为事件不会神奇地超出它们在中发生(或触发)的文档……因为我的第二个示例确实有效,我猜事件可以“超出”文档?不,因为您在父文档的范围内显式触发它。(您不会触发它“到”)父体,正如您所说,但更详细地说。)mm..好的,这很有意义。谢谢:)尝试
$('iframe')。contents()…
。
$(document).on('my_event', function(e){
console.log('My event !');
});