我最近遇到了这个很棒MutationObserver
的功能,它可以跟踪任何 dom 元素的变化。我使用了 Mozilla 开发人员网络上显示的代码,但似乎无法使其运行。这是我使用的代码(链接):
// create an observer instance
var target = document.querySelector('#something');
console.log(target);
var observer = new WebKitMutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
console.log("Success");
//$('#log').text('input text changed: "' + target.text() + '"');
//console.log(mutation, mutation.type);
});
});
observer.observe(target, { attributes: true, childList: true, characterData: true });
//observer.disconnect(); - to stop observing
// test case
setInterval(function(){
document.querySelector('#something').innerHTML = Math.random();
},1000);
上面的代码似乎不起作用。但是,如果我用一些 jQuery 修改相同的代码,一切似乎都可以正常工作(Demo here)。文档中是否缺少某些内容,或者我只是误解了观察者功能。