Jquery 如何从iframe中触发单击事件到其父元素?

Jquery 如何从iframe中触发单击事件到其父元素?,jquery,Jquery,如何从iframe中触发单击事件到其父元素 在打开iframe之前,我在父页面上尝试了以下代码 jQuery('iframe').contents().bind('eventhandler', function() { alert('event was fired'); }); 我也试过了 jQuery(document).bind('eventhandler', function(e) { alert('even

如何从iframe中触发单击事件到其父元素

在打开iframe之前,我在父页面上尝试了以下代码

jQuery('iframe').contents().bind('eventhandler', function() {               
                alert('event was fired');
        }); 
我也试过了

jQuery(document).bind('eventhandler', function(e) {
alert('event was fired');
}); 
在iframe中,我将此代码嵌入到一个单击事件中

jQuery(document).trigger('eventhandler');                      

但是它不起作用。我在这里做错了什么吗?

您需要从iframe中引用父文档。 这应该满足您的需要:

index.html:

<iframe src="iframe.html"></iframe>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(function(){
    $(document).on('eventhandler', function() {               
        alert('event was fired');
    });
}); 
</script>

$(函数(){
$(文档).on('eventhandler',function(){
警报(“事件已触发”);
});
}); 
iframe.html:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(function(){
    parent.$(parent.document).trigger('eventhandler');  
});
</script>

$(函数(){
父.$(parent.document).trigger('eventhandler');
});

如果您可以控制这两个版本的源代码,您可以这样做


ye,这是一个有效的方法!,我希望我不会在IE或Chrome上遇到任何问题,我还没有测试它。只有在Firefox上,如果您从服务器(apache或任何其他服务器)运行它,它应该可以在任何地方工作。唯一的问题是当iframe(以及iframe内容和jquery)将在父jquery之前加载时,不太可能发生的事件,但我假设您没有像我的示例中那样触发事件“onload:-)不,它工作得非常好。我在就绪状态下添加第一个事件,然后在iframe中单击并工作的按钮上添加第二个事件。thanx@tborychowski你救了我一天,兄弟:)非常感谢,我在chrome上测试了这个功能,它启动了,谢谢可能的副本