监听符合特征的 DOM 元素的产生
// 目标特征:监听 class 包含 "target-class" 的元素
const targetClassName = 'target-class';
// 创建 MutationObserver 实例
const observer = new MutationObserver((mutationsList) => {
for (const mutation of mutationsList) {
// 检查新增的节点
if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
mutation.addedNodes.forEach((node) => {
// 检查节点是否是元素节点,并且是否符合特征
if (node.nodeType === Node.ELEMENT_NODE && node.classList.contains(targetClassName)) {
console.log('目标元素已创建:', node);
}
// 检查子节点是否符合特征
if (node.querySelectorAll) {
const targetElements = node.querySelectorAll(`.${targetClassName}`);
targetElements.forEach((element) => {
console.log('目标元素已创建(子节点):', element);
});
}
});
}
}
});
// 配置 MutationObserver
const config = {
childList: true, // 监听子节点的变化
subtree: true, // 监听整个子树的变化
};
// 开始观察
observer.observe(document.body, config);