突变观察者不起作用
Mutation Observer does not work
jsFiddle
上面的脚本无法正常工作。我想将DOMNodeInserted(第19行)替换为MutationObserver(第21行),但当我使用MutationObserver时,它不起作用。
// Line 19 (works well)
document.body.addEventListener('DOMNodeInserted', function (event) {linkifyContainer(event.target);}, false);
// Line 21 (does not work)
var observer=new window.MutationObserver(function(mutations){mutations.forEach(function(mutation){linkifyContainer(mutation.addedNodes)})});observer.observe(document.body,{childList:true,subtree:true});
第21行应该有问题,但我不知道问题出在哪里,我该怎么办。
我用chrome28和firefox23检查了这个。
它是chrome的扩展,所以我不必使用"WebKitMutationObserver"或"MozMutationObserver"。
请告诉我解决办法。
您的突变观测器代码运行良好。您试图向linkifyContainer
传递NodeList
参数(即mutation.addedNodes
),但linkifyContainer
希望传递单个元素。
比较呼叫:
linkifyContainer(event.target)
和
linkifyContainer(mutation.addedNodes)
第二种情况是NodeList
,而不是单个DOM节点,如复数属性名称addedNodes所示。
只需使用mutation.addedNodes[0]
或mutation.addedNodes
:上的循环
for(var i=0; i<mutation.addedNodes; ++i) {
linkifyContainer(mutation.addedNodes[i]);
}
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 监视函数从服务返回不起作用,但作用域函数起作用
- 幻灯片滚动javascript不起作用
- 简单的javascript在Shopify中不起作用
- Recaptcha在IE7和IE8中不起作用
- Ember Data DS.Model's set函数不起作用
- JsFiddle上的鼠标事件不起作用
- 我的AngularJS表达式没有'不起作用
- 点击按钮输入不起作用
- 面向对象的Javascript代码在IE7中不起作用
- 分部隐藏在jquery中不起作用
- 在phonegap应用程序内部重定向不起作用
- Array.length似乎不起作用;console.log则显示其他情况
- $ionicplatform内的$scope不;不起作用
- 余烬JS组件观察器不起作用
- 对计算可观察量的挖空 JS 绑定不起作用
- 突变观察者不起作用
- 输入值绑定和观察器在聚合物中不起作用
- KnockoutJS.Mapping.FromJS-可观察数组-删除不起作用
- 元素显示上的角度观察不起作用