如何使用变异观察器操纵html

时间:2017-04-11 03:46:42

标签: jquery google-chrome-extension mutation-observers mutation

我想要做的是观察页面的生成(在iframe内部,但似乎并不重要)使用变异观察器并动态修改它。

我能够毫无问题地修改css,但我似乎无法更改html代码,这里是一个示例代码:

var mutationObserver = new MutationObserver (mutationHandler);
var observerConfig = {childList: true, subtree: true};
mutationObserver.observe(document, observerConfig);

function mutationHandler(mutationRecords) {
    mutationRecords.forEach ( function (mutation) {
        var newNodes = mutation.addedNodes;
        if (newNodes.length > 0) {
            $(newNodes).each(function() {
                var $node = $(this);
                if ($node.is('div')) {
                    var code = $node.html();
                    $node.html(code); // HERE IS THE TEST LINE !!!!
                }      
            });
        }
    });
}

所以我放置了一个简单的测试线,看看它是如何表现的,只需这样做 - 从div获取html代码然后按原样放回 - 页面的一部分将不会生成(几乎所有它)。

我陷入了僵局,为什么以及导致这种情况的原因,我显然错过了一些东西,使用var code = $node.html();获取html,制作出无法直接使用的内容。

0 个答案:

没有答案