监听DOM事件(具体属性)

Max*_*man 2 javascript google-chrome-extension mutation-observers

我需要在添加特定属性时获取数据。我读过这篇文章:Is There a JavaScript/jQuery DOM Change Listener?

  var observer = new MutationObserver(function (mutations, observer) {
    // fired when a mutation occurs
     $.each(mutations, function(index, mutation) {

      var post = $(mutation.target).find('div[class^="ContentWrapper"]');


     });
  });
  observer.observe(document, {
    subtree: true,
    attributes: true

  });
Run Code Online (Sandbox Code Playgroud)

这种方法存在一个问题,因为事件太多并且扩展非常慢,是否可以选择按特定属性过滤突变?

Jac*_*fin 5

attributeFilter在 MutationObserverInit 选项中使用。将其设置为您想要侦听的属性数组,如下所示:

var attributeSpecificObserver=new MutationObserver(function_you_want_observing);
attributeSpecificObserver.observe( element_you_want_to_observe, {
    attributeFilter: ['id', 'class', 'style', 'etc'],
} );
Run Code Online (Sandbox Code Playgroud)

来源:Mozilla 开发者网络 (MDN)