javascript - 我该怎么做才能让我的 Chrome 扩展只注入(inject)一次脚本?

标签 javascript google-chrome google-chrome-extension code-injection

我正在使用 programmatic injection仅在单击浏览器操作时将我的扩展代码注入(inject)页面。

这是我的分机 event page 上的内容(根据 the documentation 中的示例):

chrome.browserAction.onClicked.addListener(function callback(tab){
  chrome.tabs.executeScript(null, {file: "content-script.js"});
});

但是,按照这种方式,每次单击按钮时都会注入(inject)脚本。

我如何更改它,以便脚本不会在随后的按钮按下时被注入(inject) - 以便它仅在第一次在该页面上单击按钮时被插入?

最佳答案

在你的contentscript中放一个全局变量来判断contentscript是否已经执行。

if (something) { return; }

关于javascript - 我该怎么做才能让我的 Chrome 扩展只注入(inject)一次脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18477232/

相关文章:

javascript - 参数列表后缺少 ),我该把它放在哪里?

javascript - 将 json 插入数组以获取浮点图

javascript - 为什么我无法访问 Chrome 内置函数 $?

javascript - chrome.identity.getAuthToken 无法在 Chrome 扩展中获取 Token

javascript - 复选框勾选事件监听器

javascript - Chrome 扩展后台消息监听器启动两次

javascript - 安装 Reanimated 2 后仍然收到警告 "If you want to use Reanimated 2 then..."

javascript - 编辑内置 Chrome 书签管理器文件夹/子文件夹自动扩展?

javascript - Chrome 以看似中文的方式显示 JavaScript 文件

javascript - 捕获鼠标离开 body 元素越过顶部边界