添加onClicked处理程序到浏览器操作没有弹出窗口?

Fab*_*tté 3 javascript google-chrome-extension

我开始使用Chrome扩展程序.

我的扩展有2个content_scripts在页面加载时执行.我想onClicked从其中一个JS文件中为我的浏览器操作添加一个处理程序.

基本上我想要做的是chrome.browserAction.onClicked.addListener但我在类似的问题中读到这只能在弹出的html文件中起作用.我没有使用弹出文件,因为我目前不需要一个,我需要我的JS在全局范围内运行(因为它没有a default_popup).

这是我的manifest.json:

{
  "manifest_version": 2,

  "name": "Foo",
  "description": "Foo description.",
  "version": "0.0.0.1",
  "permissions":[
    "tabs", "http://*/*", "https://*/*"
  ],
  "browser_action": {
    "default_icon": "icon.png"
  },
  "content_scripts": [
    {
      "matches": ["http://*/*", "https://*/*"],
      "js": ["jquery1.9.1.min.js", "foo.js"]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

对不起,但我的谷歌搜索技能无法找到如何做到这一点.有没有办法将onClicked处理程序附加到我的浏览器操作,还是我需要一个html弹出窗口?

Bea*_*ist 5

决定将我过长的评论移至答案.

如果你定义了一个弹出窗口,那么onClicked事件永远不会被触发,但没有一个就可以正常工作.只需将处理程序弹出到您的后台页面即可,它应该可以正常工作.请注意,chrome.browserAction除了几乎所有其他chrome.*API之外,无法从a访问content script,因此您将需要使用a backgroundevent页面.