需求:動態監測 `
const target = document.getElementById('target');
const observer = new MutationObserver(mutations => {
mutations.forEach(m => {
if (m.type === 'childList' || m.type === 'characterData') {
console.log('TD 內容變更:', target.textContent);
// 觸發業務邏輯
}
});
});
observer.observe(target, {
childList: true, // 子節點增減
characterData: true, // 文本內容變化
subtree: true // 監聽後代
});
// 停止監聽: observer.disconnect();
if (window.MutationObserver) { /* 上述代碼 */ }
else {
// 僅作為最後手段
let last = target.innerHTML;
setInterval(() => {
if (target.innerHTML !== last) {
last = target.innerHTML;
console.log('變更:', last);
}
}, 500);
}
項目中**優先用 MutationObserver**,僅在極舊環境降級輪詢。