I have some javascript libraries (for example Adobe Edge), which dynamically insert script nodes into DOM. I detect changes with MutationsObserver, is it possible to modify the mutated nodes?

有帮助吗?

解决方案

Yes you can modify nodes that are added to the DOM dynamically just like you can any other node.

var target = document.querySelector('div');

new MutationObserver(function(mutations) {
    mutations.forEach(function (mutation) {
        Array.prototype.forEach.call(mutation.addedNodes, function (node) {
            node.style.backgroundColor = 'red';
        });
    });
}).observe(document.querySelector('div'), {attributes: true, childList: true, characterData: true});

target.appendChild(document.createElement('span'));

http://jsfiddle.net/ExplosionPIlls/rK6Hr/

其他提示

Calling takeRecords() on your MutationObserver should give you an array of MutationRecords, they have property target which is the node that has been changed.
Basically check the API.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top