2010-12-15 100 views
2

我試圖在iframe加載新頁面(可能通過用戶單擊鏈接)觸發的父級上設置事件。當iFrame中的新頁面加載時發生jQuery事件

HTML:

<iframe name="posts" id="posts" src="edit.php"> 

JS:

$(document).ready(function() { 
    $('iframe#posts').live('load', function() { 
     console.log('live'); 
    }); 
}); 

的問題是,console.log()聲明從未被觸發。我怎樣才能實現我想要做的?

回答

1

我最好的猜測是iframe上的'load'事件在文檔'ready'事件之前觸發,這意味着處理程序安裝得太晚了。您可能必須在iframe元素中使用舊式的onload

或者您可以將$('iframe#posts').live()代碼片段放在頂級腳本中,而不是放在就緒處理程序中。

+1

老派''偉大的工作。我嘗試將'.live()'調用放在全局範圍內,但它仍然沒有做任何事情。 – ggutenberg 2010-12-15 17:54:04

+0

@dosboy是有道理的,如果丹的猜測是正確的。 iframe仍然會在文檔之前觸發。 – cregox 2011-04-15 21:21:03

2

解決問題的最簡單方法是讓您的iframe使用jQuery創建。

$(document).ready(function() { 
    $("<iframe />").attr({ 
     id: "posts", 
     src: "edit.php" 
    }).load(function() { 
     console.log('live'); 
    }).appendTo("body"); 

此問題已被asked here before

2

我使用的方法是

<iframe onload="hide_html_player_contents_loading();" ...../> 
+0

Sue 2011-04-05 15:50:31

相關問題