Javascript 监视页面中的元素

Javascript 监视页面中的元素,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我正在开发GoogleChrome扩展,它可以在一些网站中找到一些元素,并以某种方式对它们进行更改(这么多“some”,嗯:-))。这些元素在加载HTML时不显示,它们加载到页面的脚本中。而且,它们可能出现得更晚 目前,我每隔一段时间就进行一次检查,并忽略已处理的元素: var processed = []; //... function checkElements() { var elements = document.querySelectorAll(//... for

我正在开发GoogleChrome扩展,它可以在一些网站中找到一些元素,并以某种方式对它们进行更改(这么多“some”,嗯:-))。这些元素在加载HTML时不显示,它们加载到页面的脚本中。而且,它们可能出现得更晚

目前,我每隔一段时间就进行一次检查,并忽略已处理的元素:

var processed = [];

//...

function checkElements() {
    var elements = document.querySelectorAll(//...

    for (var i = 0; i < elements.length; ++i) {
        var element = elements[i];

        if (processed.indexOf(element) > -1) continue; // ignore processed elements
        processed.push(element);

        // process element
    }
}

setInterval(checkElements, TIMEOUT);
var-processed=[];
//...
函数checkElements(){
var elements=document.querySelectorAll(//。。。
对于(变量i=0;i-1)continue;//忽略已处理的元素
已处理。推送(元素);
//过程元素
}
}
设置间隔(检查元素、超时);
但这看起来很愚蠢,而且在我看来,表演很糟糕


我可以在创建/更改元素时创建一些触发器吗?JS的惯用方法是什么?

可以。一种方法是使用

变异观察者 MutationObserver为开发人员提供了一种对DOM中的更改做出反应的方法。它被设计为DOM3事件规范中定义的突变事件的替代品

如何执行此操作的示例取自:


是的,你可以。一种方法是使用

变异观察者 MutationObserver为开发人员提供了一种对DOM中的更改做出反应的方法。它被设计为DOM3事件规范中定义的突变事件的替代品

如何执行此操作的示例取自:


是的,你可以。一种方法是使用

变异观察者 MutationObserver为开发人员提供了一种对DOM中的更改做出反应的方法。它被设计为DOM3事件规范中定义的突变事件的替代品

如何执行此操作的示例取自:


是的,你可以。一种方法是使用

变异观察者 MutationObserver为开发人员提供了一种对DOM中的更改做出反应的方法。它被设计为DOM3事件规范中定义的突变事件的替代品

如何执行此操作的示例取自:

您可以使用“突变事件”来侦听主体DOM上的更改

例如,如果要侦听元素将何时添加到正文中:

var body = document.querySelector('body');
body.addEventListener("DOMNodeInserted", function (ev) {

}, false);
您可以使用“突变事件”来侦听主体DOM上的更改

例如,如果要侦听元素将何时添加到正文中:

var body = document.querySelector('body');
body.addEventListener("DOMNodeInserted", function (ev) {

}, false);
您可以使用“突变事件”来侦听主体DOM上的更改

例如,如果要侦听元素将何时添加到正文中:

var body = document.querySelector('body');
body.addEventListener("DOMNodeInserted", function (ev) {

}, false);
您可以使用“突变事件”来侦听主体DOM上的更改

例如,如果要侦听元素将何时添加到正文中:

var body = document.querySelector('body');
body.addEventListener("DOMNodeInserted", function (ev) {

}, false);

因为文件上说,突变观察员是首选的,你回答了earlies,我接受这个答案。因为文件上说,突变观察员是首选的,你回答了earlies,我接受这个答案。因为文件上说,突变观察员是首选的,你回答了earlies,我接受这个answer、 由于文档中指出,优先选择突变观察者,并且您回答了earlies,我接受这个答案。突变事件不推荐使用。事实上,此警告位于您链接的页面顶部。突变观察者是现代方法。谢谢Xan,我读到了“突变观察者”这是最好的方法。不推荐使用突变事件。事实上,此警告位于您链接的页面顶部。突变观察者是现代方法。谢谢Xan,我阅读了“突变观察者”这是最好的方法。不推荐使用突变事件。事实上,此警告位于您链接的页面顶部。突变观察者是现代方法。谢谢Xan,我阅读了“突变观察者”这是最好的方法。不推荐使用突变事件。事实上,此警告位于您链接的页面顶部。突变观察者是最现代的方法。谢谢Xan,我阅读了有关“突变观察者”的文章,这是最好的方法。