【发布时间】:2016-11-01 16:19:37
【问题描述】:
DOMNodeInserted event has been deprecated 和所有突变事件已被突变观察者替换。
但是,within mutation observers 只有配置选项用于观察节点属性、内容和子节点的突变。与它在 DOM 树中的位置的变化无关。
我能想到的一个“解决方案”是观察从 document.body 开始的所有内容,搜索一个突变,即我的目标节点被添加,但这是一种非常糟糕的做任何事情的方式。
那么用 Mutation Observers 替换已弃用的 DOMNodeInserted 的预期方法是什么?
下面是一些代码,您可以在其中看到所有可用的变异观察器配置选项都没有响应添加到页面的元素:
var addMe = document.createElement("div");
var config = {
attributes: true,
childList: true,
characterData: true
}
var observer = new MutationObserver(function(mutations) {
console.log(mutations);
});
observer.observe(addMe, config);
function appendAddMe() {
document.body.appendChild(addMe);
}
div {
height: 50px;
width: 50px;
background: #969;
}
<button onclick="appendAddMe()">Append addMe</button>
【问题讨论】:
标签: javascript mutation-observers