2016-09-29 57 views
0

在我的網頁上,有一個IFRAME加載,我只是希望它加載後找到元素,所以我用這個功能:如何使用`DOMNodeInserted` - 會爲iframe內容,以確定

$("body").on("DOMNodeInserted", ".ssueContentIframe", function() { 
    $(this).css('border', '1px solid red'); //works 
    update(); 
}); 

Iframe加載後,我想添加一個事件監聽器到我的元素之一,所以我想傾聽以及我打電話像上面的update函數,但我沒有得到結果。

對於Iframe內容,使用DOMNodeInserted的正確方法是什麼? 這裏是我的update功能的嘗試:

var update = function(){ 

     $(".ssueContentIframe").contents().on("DOMNodeInserted", '.ui-grid-selection-row-header-buttons', function(){ 
      //above contents load in for loop, after loop nothing added 
      $(this).css('border', '1px solid red');//not works 
     }); 

    }; 

或什麼是正確的做法,是沒有任何插件,否則? 在這裏需要您的幫助!

+0

iframe是否與父窗口有相同的起源? – guest271314

+0

是的,只有同一起源 - 但不起作用 – 3gwebtrain

回答

0

注意,Mutation Events已棄用。您應該使用MutationObserver,請參閱call function on change of value inside <p> tag

要使用在現有的問題javascript,因爲你已經附着在事件body元素,它插在<body>元素的所有節點應在使用event.originalEvent.originalTargetevent.originalEvent.explicitOriginalTarget事件處理程序訪問。調用update()以附加DOMNodeInserted事件元素<body>iframedocument是沒有必要的。

$("body").on("DOMNodeInserted", ".ssueContentIframe", function(event) { 
    $(this).css('border', '1px solid red'); //works 
    console.log(event.originalEvent.originalTarget); // inserted node 
}); 
+0

現在讓我試試吧。並更新你 – 3gwebtrain

+0

嘗試過,不工作。內容通過循環插入到iframe中iteratror – 3gwebtrain

+0

在問題中使用'javascript'會出現什麼問題?請注意,「突變事件」已棄用。應該使用'MutationObserver'。 – guest271314