【问题标题】:Chrome Extension: How to remove content script after injection?Chrome 扩展程序:如何在注入后删除内容脚本?
【发布时间】:2013-08-28 01:17:18
【问题描述】:

使用 Google Chrome 扩展程序:是否可以在将内容脚本注入页面后删除它?

没有用于重新加载内容脚本的 API 方法(据我所知),所以如果可能的话,我想重新注入脚本并删除旧脚本。

【问题讨论】:

    标签: javascript google-chrome-extension


    【解决方案1】:

    没有。你不能“删除”它。运行内容脚本可能会产生副作用,例如在窗口对象上声明变量和函数、连接到背景页面或侦听 DOM 事件。如果你的内容脚本没有副作用,那就等同于根本不被注入。

    如果您想重新注入它,只需使用 code 或 source 参数调用 executeScript。最好将注入的脚本简单地定义为函数,然后在函数上调用 .toString() ,并将它们作为原始字符串注入到 executeScript 的“code”参数中。这些函数的参数可以插入为 JSON 字符串,更加方便。

    【讨论】:

    • 我担心这就是答案;对我来说只是多一点工作,我猜
    • 它的工作原理很有趣。每当我在内容脚本中输入调试器时,窗格都会显示为黄色,并且我看到 [VM] 作为脚本源。我想知道实际实现一些尝试并删除所有事件侦听器以及内容脚本可能创建的任何其他副作用的东西需要什么。
    • 写一个内容脚本可能会更好,这样你就可以调用一个函数来重新启动它。
    【解决方案2】:

    我想如果您动态加载内容脚本,则可以使用 javascript (window.location.reload()) 强制刷新页面,这一次不加载内容脚本

    【讨论】:

      猜你喜欢
      • 2017-04-07
      • 2020-08-19
      • 2022-11-07
      • 2019-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-16
      相关资源
      最近更新 更多