【问题标题】:How to choose when to fire a content script for Chrome extension?如何选择何时触发 Chrome 扩展的内容脚本?
【发布时间】:2020-04-15 14:42:36
【问题描述】:

根据我的经验,与清单中的 url 匹配的内容脚本会在处理 url 时立即触发。是否可以选择何时触发该内容脚本,以及是否可以多次重新触发内容脚本?

现在我想更改分页中生成的数据文本。因此,当我继续访问 url 时,分页的第 1 页将被成功更改。点击第2页后,由于更改分页数据时页面不刷新,所以除第一页以外的所有其他页面都将保持不变

【问题讨论】:

  • @wOxxOm 我有一个关于最佳实践的问题,如果你能提供帮助,这与为什么我想多次触发内容脚本但不值得另一个线程有关。我想在某个元素上注入 html,它在第一次加载时工作,但父元素通过 AJAX 重新渲染,所以在我单击按钮后它不会在那里,可以使用 MutationObserver 检查父元素元素缺少我注入的 html,然后如果它不存在,则继续在 MutationObserver 侦听器中注入我的 html 循环?我能够做到这一点,但想知道好的/坏的做法。
  • 使用 devtools 性能分析器查看您的代码是否会导致明显的减速。如果确实如此,请尝试optimizing your observer 或找到另一个触发器,例如page event

标签: javascript google-chrome-extension content-script


【解决方案1】:

在我的扩展中,最好尽可能早地使用run_at 注入脚本。在脚本本身中,我检查我需要的东西。

MutationObserver 可以用来检查 DOM 修改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2012-07-08
    • 2016-07-10
    • 1970-01-01
    • 2013-04-04
    • 1970-01-01
    • 2022-11-07
    相关资源
    最近更新 更多