2012-08-22 44 views
7

如何从iframe中触发点击事件到其父级的元素?如何从iframe中触发点击事件到其父级的元素?

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

jQuery('iframe').contents().bind('eventhandler', function() {    
       alert('event was fired'); 
     }); 

我也试过

jQuery(document).bind('eventhandler', function(e) { 
alert('event was fired'); 
}); 

和iframe中我有一个click事件

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

内嵌这个代码,但它简化版,工作,我做错了什么吗?

+0

可能重复[trigger click in if rame的父窗口](http://stackoverflow.com/questions/3521947/trigger-click-event-in-iframe-parent-window) –

回答

6

您需要引用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> 

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> 
+0

你的工作thanx !,我希望我不会有任何问题与IE或Chrome浏览器,我还没有测试过。只有在firefox – themis

+0

如果你从服务器(Apache或任何其他)运行它应该无处不在。唯一的问题是iframe(以及iframe内容和jquery)会在父级jquery之前加载,但我认为你不会像在我的示例中那样触发事件“onload”:-) – tborychowski

+0

不,它完美地工作好。我将第一个事件添加到就绪状态,然后将第二个事件添加到在iframe中单击并运行的按钮上。 thanx – themis

相关问题