Javascript 检查Google Chrome扩展中的DOM元素
我正在尝试做一个简单的Google Chrome扩展,比如在页面上查找特定元素并显示警报 我的问题是,特定页面的加载速度相对较慢(后面还有一些AJAX) 只有当所有页面都已加载时,我如何才能进行检查 我在清单文件中尝试了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”
“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更新所有元素之前触发。