监控元素出现

监控元素出现

function observeElementExist(selector, callback) {
    const handleMutations = (mutationsList, observer) => {
        for (let mutation of mutationsList) {
            if (mutation.type === 'childList') {
                mutation.addedNodes.forEach(node => {
                    if (node.matches && node.matches(selector)) {
                        callback(node);
                    } else if (node && node.querySelector && node.querySelector(selector)) {
                        callback(node.querySelector(selector));
                    }
                });
            }
        }
    };

    // 创建一个MutationObserver实例
    const config = { attributes: false, childList: true, subtree: true };
    const observer = new MutationObserver(handleMutations);

    // 选择需要监听的父节点
    const targetNode = document.body; // 或者选择其他合适的父节点

    // 开始监听目标节点的变化
    observer.observe(targetNode, config);
}

// 使用示例
observeElementExist('div[data-type="search-item"]', (element) => {
    console.log('The DOM exist', element);
    // 在这里执行你需要的操作
});

image.png

留下你的脚步
推荐阅读