以下是我宣布变异观察者的方式:
observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
switch (mutation.type) {
case 'childList':
// Do Stuff
break;
}
})
observer.observe(
document.getElementById('contentEditableElement'),
{
attributes: false,
childList: true,
characterData: false
}
);
以上代码在Chrome中完全正常。当我将HTML元素拖放到内容可编辑区域时,观察者会在元素直接放在两者上直接在观察元素上以及将元素放入观察元素的子元素时触发。
在FireFox(v 29.0.1)中,只有在将元素直接添加到观察元素而不是其子元素时,观察者才会触发。为什么呢?
答案 0 :(得分:0)
你忘记了
subtree: true
应该是
document.getElementById('contentEditableElement'),
{
attributes: false,
childList: true,
characterData: false,
subtree: true
}