2012-08-22 45 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

相關問題