Javascript 检测在my Chrome扩展之外生成的DOM更改

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 '

我有一个chrome扩展,在加载页面后将iFrame注入dom

我还希望侦听dom更改,但我希望忽略由于我注入iFrame而触发的
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是否存在。这使我能够按需要的方式筛选事件。谢谢