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 で変更すると、すべて問題なく動作するように見えます (デモはこちら)。ドキュメントに欠けているものがありますか、それともオブザーバー機能を誤解しているだけですか。