MutationObserver
是 JavaScript 中的一个接口,用于监视 DOM(文档对象模型)树中的更改。它可以检测到 DOM 树中的节点添加、删除、属性更改等变化。MutationObserver
提供了一种异步观察 DOM 变化的机制,不会阻塞页面的其他操作。
MutationObserver
是异步的,不会阻塞页面的其他操作,提高了性能。MutationObserver
,具有良好的兼容性。MutationObserver
可以监视以下几种类型的 DOM 变化:
以下是一个使用 MutationObserver
监视 DOM 中 lang
属性变化的示例:
// 创建一个观察器实例并传入回调函数
const observer = new MutationObserver((mutationsList, observer) => {
for (let mutation of mutationsList) {
if (mutation.type === 'attributes' && mutation.attributeName === 'lang') {
console.log('The lang attribute was modified:', mutation.target);
}
}
});
// 选择要观察变动的节点
const targetNode = document.querySelector('#myElement');
// 配置观察选项
const config = { attributes: true, attributeFilter: ['lang'] };
// 以上面的配置开始观察目标节点
observer.observe(targetNode, config);
// 之后,你可以停止观察
// observer.disconnect();
attributes
和 attributeFilter
选项。MutationObserver
的 subtree
选项为 false
,只观察目标节点本身的变化,而不观察其子节点的变化。MutationObserver
的 attributeFilter
选项,只观察特定的属性变化。MutationObserver
接口。可以通过 Can I use 检查浏览器的兼容性。通过以上方法,你可以有效地使用 MutationObserver
监视 DOM 中 lang
属性的变化,并解决常见的使用问题。
领取专属 10元无门槛券
手把手带您无忧上云