Javascript 检测在my Chrome扩展之外生成的DOM更改
我有一个chrome扩展,在加载页面后将iFrame注入dom 我还希望侦听dom更改,但我希望忽略由于我注入iFrame而触发的Javascript 检测在my Chrome扩展之外生成的DOM更改,javascript,jquery,google-chrome-extension,Javascript,Jquery,Google Chrome Extension,我有一个chrome扩展,在加载页面后将iFrame注入dom 我还希望侦听dom更改,但我希望忽略由于我注入iFrame而触发的domsubtreemedited。所以,在我注入iFrame之前或之后的任何事件,我都想捕获 下面是我的内容脚本的基本内容,该脚本正在查看dom更改: var processRequest = function() { $('body').bind('DOMSubtreeModified', DOMModificationHandler); return '
domsubtreemedited
。所以,在我注入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或数据属性都可能已经存在,因此我仍然不知道圆顶更改的来源。请检查并随后查看。您应该能够根据事件的目标筛选事件。在本例中,目标是正在修改的父子树。是的,这就成功了。我向DOMModificationHandler函数添加了一个事件参数。从那里,我测试e.target.id是否存在。这使我能够按需要的方式筛选事件。谢谢