繁体   English   中英

Chrome突变观察者

[英]Chrome Mutation Observer

我正在尝试使用Chrome中的Mutation Observer监视何时添加新图像,到目前为止,这是我的代码:

var observer = new window.MutationObserver(function (mutations) {
    mutations.forEach(function (mutation) {
        var m = mutation;
        //console.log(m);
        for (var j = 0; j < m.addedNodes.length; j++)
        {
            var nodes=m.addedNodes[j];
            if (!nodes || !nodes.querySelectorAll)
            {
                // Not all nodes support querySelectorAll, e.g. text nodes.
                continue;
            }

            var imgs= nodes.querySelectorAll("img");
            for (var k = 0; k < imgs.length; k++)
            {
                if(imgs[k].src != undefined)
                {
                    var img = imgs[k];
                    console.log(img);
                }
            }
        }
    });
});

var config = { childList: true };
// pass in the target node, as well as the observer options
observer.observe(window.document, config);

发生了一件奇怪的事情:似乎已调用了该回调函数,但未找到任何图像。当我打开控制台( Ctrl + Shift + J )时,代码开始正常工作,到此为止添加的所有图像都被打印出来。重新调整控制台大小时会发生这种情况。

我是否必须将其他参数设置为config值? 为什么打开控制台突然使代码正常工作?

该文档的子列表几乎从未更改。 通常只是一个<html>子级。 您可能需要config subtree: true ,以便在图像深处添加文档时运行观察者。

但这并不能解释为什么在打开控制台时代码仍能正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM