为什么 MutationObserver 不进行回调



下面的代码没有触发MutationObserver回调的原因是什么呢?

<!DOCTYPE html>
<body>
<div id="msg">Hello</div>
<script>
var el = document.getElementById("msg");
var obs = new MutationObserver(() => {
console.log("Changed!");
});
obs.observe(el, {subtree: true, characterData: true});
setTimeout(() => {
el.innerHTML += " World!";
}, 3000);
</script>
</body>
</html>

innerHTML改变了DOM,所以您需要监视childList

<!DOCTYPE html>
<body>
<div id="msg">Hello</div>
<script>
var el = document.getElementById("msg");
var obs = new MutationObserver(() => {
console.log("Changed!");
});
obs.observe(el, {childList: true});
setTimeout(() => {
el.innerHTML += " World!";
}, 3000);
</script>
</body>
</html>

最新更新