我制作了一个简单的Chrome扩展程序,它在页面加载时运行内容脚本。它改变了img标签的src属性。每当网站获得新的img标签时,如何让它运行?例如,如果您在Facebook上向下滚动添加新内容,我想将这些新图像更改为我自己的图像。也许有更好的方法吗?提前谢谢。
答案 0 :(得分:2)
我会创建一个mutation observer并将其添加到页面加载后注入的内容脚本中。
以下代码正在侦听添加到body元素的图像,并且每秒触发一次事件以模拟添加到DOM的图像
// select the target node
var target = document.querySelector('body');
// create an observer instance
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
var nodes = mutation.addedNodes;
var node;
for(var n = 0; node = nodes[n], n < nodes.length; n++) {
if(node.tagName == "IMG") {
console.log("Image found");
}
};
});
});
// configuration of the observer:
var config = { attributes: false, childList: true, subtree: true, characterData: false };
// pass in the target node, as well as the observer options
observer.observe(target, config);
setInterval(function() {
var i = new Image();
document.body.appendChild(i);
}, 1000);