從http://updates.html5rocks.com/2012/02/Detect-DOM-changes-with-Mutation-Observers我得到了下面的代碼:爲什麼MutationObserver代碼不能在Chrome 30上運行?
var insertedNodes = [];
var observer = new WebKitMutationObserver(function(mutations) {
alert('run');
mutations.forEach(function(mutation) {
for (var i = 0; i < mutation.addedNodes.length; i++)
insertedNodes.push(mutation.addedNodes[i]);
})
});
observer.observe(document, { childList: true });
console.log(insertedNodes);
var divElement = document.createElement('div');
divElement.innerHTML = 'div element';
document.querySelector('body').appendChild(divElement);
的jsfiddle:http://jsfiddle.net/cUNH9
正如你所看到的,我們應該看到一個警告,因爲div
元素插入到DOM。但它似乎不會運行MutationObserver代碼。我該如何成功運行MutationObserver代碼?
是的,如果你觀察document.body,它會工作.. – PSL
@plalx我試過'新的MutationObserver'和'新的WebKitMutationObserver'。他們有相同的結果。 – weilou
@weilou,不要使用'document.querySelector('body')',只需使用'document.body'。 – plalx