观察元素变化
创建一个新的MutationObserver
,并对指定元素上的每个变化运行提供的回调函数。
- 使用
MutationObserver
来观察给定元素上的变化。 - 使用
Array.prototype.forEach()
来对观察到的每个变化运行回调函数。 - 省略第三个参数
options
,以使用默认的选项(全部为true
)。
const observeMutations = (element, callback, options) => {
const observer = new MutationObserver(mutations =>
mutations.forEach(m => callback(m))
);
observer.observe(
element,
Object.assign(
{
childList: true,
attributes: true,
attributeOldValue: true,
characterData: true,
characterDataOldValue: true,
subtree: true,
},
options
)
);
return observer;
};
const obs = observeMutations(document, console.log);
// 记录页面上发生的所有变化
obs.disconnect();
// 断开观察器并停止记录页面上的变化