js
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);
// 在这里执行你需要的操作
});