Javascript 铬突变观察者
我正在尝试使用Chrome中的突变观察者来监控添加新图像的时间,以下是我目前的代码:Javascript 铬突变观察者,javascript,google-chrome,mutation-observers,Javascript,Google Chrome,Mutation Observers,我正在尝试使用Chrome中的突变观察者来监控添加新图像的时间,以下是我目前的代码: var observer = new window.MutationObserver(function (mutations) { mutations.forEach(function (mutation) { var m = mutation; //console.log(m); for (var j = 0; j < m.addedNodes.l
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);
var observer=new window.MutationObserver(函数(突变){
突变。forEach(功能(突变){
var m=突变;
//控制台日志(m);
对于(var j=0;j
一件奇怪的事情正在发生:回调似乎被调用,但没有找到任何图像。当我打开控制台(Ctrl+Shift+J)时,代码开始正常工作,由该点添加的所有图像都被打印出来。当我重新调整打开的控制台的大小时,也会发生同样的事情
是否必须为配置值设置其他参数?
为什么突然打开控制台会使代码正常工作?文档的子列表几乎从不更改。它通常只是一个孩子。您可能希望在
配置中使用子树:true
,以便在文档深处添加图像时观察者可以运行
但这并不能解释为什么在控制台打开时代码仍在工作。有关于如何添加新映像的详细信息吗?它是通过创建属性添加的吗?