Von http://updates.html5rocks.com/2012/02/Detect-DOM-changes-with-Mutation-Observers habe ich den folgenden Code:Warum wird der MutationObserver-Code nicht in Chrome 30 ausgeführt?
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
Wie Sie sehen können, haben wir eine Benachrichtigung, weil ein div
Element auf das DOM sehen sollte eingeführt wird. Aber es scheint, MutationObserver-Codes laufen nicht. Wie kann ich den MutationObserver-Code erfolgreich ausführen lassen?
Ja, Wenn Sie document.body beobachten, wird es funktionieren. – PSL
@plalx Ich habe sowohl 'neuen MutationObserver' als auch' neuen WebKitMutationObserver' ausprobiert. Sie teilen das gleiche Ergebnis. – weilou
@weilou, Verwenden Sie nicht 'document.querySelector ('body')', verwenden Sie einfach 'document.body'. – plalx