问题 如何跟踪chrome扩展中的DOM更改?


我正在写一个chrome扩展,我想要获取页面上存在的所有图像,但是一些图像会在一段时间后加载(可能是通过ajax),一旦DOM空闲,我就无法获取。有没有办法在页面加载后跟踪DOM更改?


7462
2018-01-16 15:51


起源



答案:


您可以使用 document.addEventListener 随着 DOMNodeInserted 事件。您的回调必须检查每个节点插入,以查看它是否是您要查找的节点类型。像下面这样的东西应该工作。

function nodeInsertedCallback(event) {
    console.log(event);
};
document.addEventListener('DOMNodeInserted', nodeInsertedCallback);

16
2018-01-16 22:33



谢谢亚伯拉罕。有效。对于那些不知道要放上述代码的人: reminiscential.wordpress.com/2011/10/04/... - codef0rmer
抬头:这个活动是 弃用。现代的方法是使用DOM变异观察者,和 这个 是规范的答案。 - Xan


答案:


您可以使用 document.addEventListener 随着 DOMNodeInserted 事件。您的回调必须检查每个节点插入,以查看它是否是您要查找的节点类型。像下面这样的东西应该工作。

function nodeInsertedCallback(event) {
    console.log(event);
};
document.addEventListener('DOMNodeInserted', nodeInsertedCallback);

16
2018-01-16 22:33



谢谢亚伯拉罕。有效。对于那些不知道要放上述代码的人: reminiscential.wordpress.com/2011/10/04/... - codef0rmer
抬头:这个活动是 弃用。现代的方法是使用DOM变异观察者,和 这个 是规范的答案。 - Xan