我有一個Chrome擴展,它在加載頁面後將iFrame注入到dom中。檢測我的Chrome擴展之外生成的DOM更改
我也想聽dom的變化,但我想忽略因注入iFrame而被解僱的DOMSubtreeModified
。因此,任何事件,在我注入我的iFrame之前或之後,我想要捕獲。
這裏是我的內容腳本是在尋找DOM變化的基礎知識:
var processRequest = function() {
$('body').bind('DOMSubtreeModified', DOMModificationHandler);
return 'complete';
}
function DOMModificationHandler() {
$(this).unbind('DOMSubtreeModified');
setTimeout(function() {
//skip this if it was my iFrame injection that caused this event
//someLocalFunction();
$('#ContentContainer').bind('DOMSubtreeModified', DOMModificationHandler);
},1000);
}
有什麼我可以做我的注射來區分,和其他DOM事件,該DOMModificationHandler
火災時?
**更新:我認爲添加一些類型的id或數據元素的iFrame,但只是告訴我,它在那裏,而不是它是導致事件的iFrame。尤其是當有更新dom部分的AJAX請求時。任何ID或數據屬性可能已經存在,所以我仍然不知道圓頂變化的來源。
是的,這沒關係。我向DOMModificationHandler函數添加了一個事件arg。從那裏,我測試e.target.id,如果存在。這使我能夠以我需要的方式過濾事件。謝謝! –