Javascript 检查Google Chrome扩展中的DOM元素

Javascript 检查Google Chrome扩展中的DOM元素,javascript,dom,google-chrome,google-chrome-extension,Javascript,Dom,Google Chrome,Google Chrome Extension,我正在尝试做一个简单的Google Chrome扩展,比如在页面上查找特定元素并显示警报 我的问题是,特定页面的加载速度相对较慢(后面还有一些AJAX) 只有当所有页面都已加载时,我如何才能进行检查 我在清单文件中尝试了“run\u at”:“document\u idle”,但没有成功。在整个页面加载之前,它会向我显示消息 我想每隔一秒钟(或其他什么时候)检查整个DOM元素,但这是一个可行的解决方案吗?我想这会减慢页面的速度 谢谢。您是否尝试将代码放入“content\u script.js”

我正在尝试做一个简单的Google Chrome扩展,比如在页面上查找特定元素并显示警报

我的问题是,特定页面的加载速度相对较慢(后面还有一些AJAX)

只有当所有页面都已加载时,我如何才能进行检查

我在清单文件中尝试了
“run\u at”:“document\u idle”
,但没有成功。在整个页面加载之前,它会向我显示消息

我想每隔一秒钟(或其他什么时候)检查整个DOM元素,但这是一个可行的解决方案吗?我想这会减慢页面的速度


谢谢。

您是否尝试将代码放入“content\u script.js”中的window.onload事件中


您是否尝试将代码放入“content_script.js”中的window.onload事件中


如果单击“查看源代码”时页面上不存在该元素,则捕获该元素的一种方法是侦听
domsubtreemedited
事件,该事件在每次修改DOM时触发:

document.addEventListener("DOMSubtreeModified", function(event){
        if(document.getElementById("my_element")) {
                //element is added
        }
});

如果单击“查看源代码”时页面上不存在该元素,则捕获该元素的一种方法是侦听
domsubtreemedited
事件,该事件在每次修改DOM时触发:

document.addEventListener("DOMSubtreeModified", function(event){
        if(document.getElementById("my_element")) {
                //element is added
        }
});

谢谢你的信息。我的页面使用AJAX加载了很多元素。这真的让我的页面变慢了。对于添加的每个元素,脚本都会运行。我是否可以将此限制为,比方说,仅当添加元素(div、文本字段等)时?@Parkyprg还有
domanodeinserted
事件。但我不明白为什么这会减慢页面的速度。您不应该在此事件处理程序中运行任何脚本,只需检查元素是否已在页面上。如果是-那么你运行你的脚本一次(有一些标志或东西)。谢谢你的信息。我的页面使用AJAX加载了很多元素。这真的让我的页面变慢了。对于添加的每个元素,脚本都会运行。我是否可以将此限制为,比方说,仅当添加元素(div、文本字段等)时?@Parkyprg还有
domanodeinserted
事件。但我不明白为什么这会减慢页面的速度。您不应该在此事件处理程序中运行任何脚本,只需检查元素是否已在页面上。如果是-那么你只运行一次你的脚本(有一些标志或其他东西)。它不工作。这会在窗口加载时触发,但在所有元素都用AJAX更新之前触发。它不起作用。这将在窗口加载时触发,但在使用AJAX更新所有元素之前触发。