我有一个 chrome 扩展,它在页面加载后将 iFrame 注入到 dom 中。
我也想听听 dom 的变化,但我想忽略DOMSubtreeModified
由于我注入 iFrame 而被触发的 。所以任何事件,无论是在我注入 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);
}
DOMModificationHandler
当火灾发生时,我能做些什么来区分我的注入和其他 dom 事件吗?
**更新:我考虑向 iFrame 添加某种类型的 id 或数据元素,但这只是告诉我它就在那里,而不是 iFrame 导致了事件。尤其是当有一个 AJAX 请求更新了 dom 的一部分时。任何 id 或 data 属性可能已经存在,所以我仍然不知道圆顶变化的来源。