// 使用 MutationObserver 监听 DOM 变化
// 选择需要观察变动的节点
const targetNode = document.getElementById('some-id');
// 配置观察选项
const config = { attributes: true, childList: true, subtree: true };
// 当观察到变动时的回调函数
const callback = function(mutationsList, observer) {
for(let mutation of mutationsList) {
if (mutation.type === 'childList') {
console.log('子节点发生了变化');
}
else if (mutation.type === 'attributes') {
console.log('属性发生了变化');
}
}
};
// 创建一个观察器实例并传入回调函数
const observer = new MutationObserver(callback);
// 以上述配置开始观察目标节点
observer.observe(targetNode, config);
// 之后可以通过以下方式停止观察
// observer.disconnect();
targetNode 是我们想要监听的 DOM 节点。config 对象定义了我们要监听哪些类型的变动,比如 attributes(属性变化)、childList(子节点变化)和 subtree(是否观察整个子树)。callback 函数会被调用,并传递两个参数:mutationsList(包含所有变动的列表)和 observer(当前的观察器实例)。new MutationObserver(callback) 创建一个观察器实例。observer.observe(targetNode, config) 开始监听目标节点的变化。observer.disconnect() 停止监听。Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站