MutationObserver的使用

111 阅读1分钟

MutationObserver可以监测dom变化

const observer = new MutationObserver((mutationsRecord) => {

  console.log('DOM元素有变化')
  
  console.log(mutationsRecord)
  

})

function addItem(){

document.body.className = 'foo'

document.body.setAttribute('name', 'xjp')

}

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

// childList:设置 true,表示观察目标子节点的变化,比如添加或者删除目标子节点,不包括修改子节点以及子节 点后代的变化

// attributes:设置 true,表示观察目标属性的改变

// characterData:设置 true,表示观察目标数据的改变

// subtree:设置为 true,目标以及目标的后代改变都会观察

// MutationObserver 是异步触发,DOM 发生变动以后,并不会马上触发,而是要等到当前所有 DOM 操作都结束后才触发。