[英]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.