每次点击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 。