每次点击Chrome扩展程序图标时运行脚本

我该如何编写一个扩展插件,以便每次用户点击图标时,我的脚本已经运行,但是没有popup窗口被打开? (我会自己查看这些文档,不过无论出于何种原因,他们突然停止了工作,正如我刚才所说的那样)。

我假设它只是正确设置清单。 这是我现在拥有的:

{ "name": "My Extension", "version": "0.1", "description": "Does some simple stuff", "browser_action": { "popup" : "mine.html", "default_icon": "logo.png" }, "permissions": [ "notifications" ] } 

从清单的browser_action部分删除popup,并在后台脚本中使用后台页面以及浏览器Action 。

 chrome.browserAction.onClicked.addListener(function(tab) { alert('icon clicked')}); 

首先,如果你不想显示一个popup窗口,从你的manifest.json (显示在你的问题中)删除"popup" : "mine.html"

你的manifest.json看起来像这样:

 { "name": "My Extension", "version": "0.1", "manifest_version" : 2, "description": "Does some simple stuff", "background" : { "scripts" : ["background.js"] }, "browser_action": { "default_icon": "logo .png" }, "permissions": ["activeTab"] } 
  • 请注意, manifest_version必须在那里,它必须是2
  • 请注意activeTab权限已被添加。
  • 请注意,只有在单击浏览器操作button时才能执行一项操作:可以显示popup窗口,也可以执行脚本,但不能同时执行这两个操作。

其次,单击图标时执行脚本,将下面的代码放在您的background.js文件中(文件名在manifest.json指定):

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

最后, testScript.js是你应该把你想要执行的代码点击图标的地方。

请使用chrome.browserAction.onClicked API,而不是指定一个popup页面, 这里logging 。