检查 Google Chrome 扩展中的 DOM 元素

发布于 2024-11-23 23:36:27 字数 283 浏览 1 评论 0原文

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

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

如何仅在所有页面加载完毕后才进行检查?

我在清单文件中尝试了 "run_at" : "document_idle" ,但没有成功。它在整个页面加载之前向我显示消息。

我正在考虑每秒(或其他)检查整个 DOM 元素,但这是否是一个可行的解决方案?我认为这会减慢页面速度...

谢谢。

I am trying to make a simple Google Chrome extension - like finding a specific element on the page and display an alert.

My problem is that the specific page loads relatively slow (having also some AJAX behind).

How can I make my check only when all the page is loaded?

I tried "run_at" : "document_idle" in my manifest file, but with no success. It shows me the message, before the whole page loads.

I was thinking to check every second (or something) the whole DOM elements, but is this a feasible solution? I think it will slow down the page...

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

離人涙 2024-11-30 23:36:27

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

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

If that element does not exist on the page when you click "view source", then one way of catching it would be listening to DOMSubtreeModified event, which fires each time DOM is modified:

document.addEventListener("DOMSubtreeModified", function(event){
        if(document.getElementById("my_element")) {
                //element is added
        }
});
倥絔 2024-11-30 23:36:27

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

window.onload = function() {
   // your code
};

Have you tried to put your code in window.onload event in "content_script.js"?

window.onload = function() {
   // your code
};
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文