如何制作,以便我的Chrome扩展程序只会注入一次脚本?

Stu*_*ley 4 javascript google-chrome code-injection google-chrome-extension

我正在使用程序化注入仅在单击浏览器操作时将扩展程序的代码注入页面.

这是我在扩展程序的事件页面上的内容(根据文档中的示例):

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

但是,按照这种方式工作的方式,每次单击按钮都会注入脚本.

如何更改它以便在后续按钮按下时不会注入脚本 - 这样只有在第一次单击该页面上的按钮时才会插入脚本?

Tom*_*Tom 6

在内容脚本中加入一个gloabl变量来判断脚本是否已执行.

if (something) { return; }
Run Code Online (Sandbox Code Playgroud)

  • @StuartP.Bentley来自同一页面上相同扩展名的内容脚本共享相同的执行环境,因此第一次运行脚本时声明的全局变量将在第二次运行时看到. (2认同)