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

时间:2013-04-11 03:33:08

标签: javascript google-chrome-extension

我开始使用Chrome扩展程序。

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

基本上我想做的是chrome.browserAction.onClicked.addListener但是我在类似的问题中读到这只能在弹出式html文件中起作用。我没有使用弹出文件,因为我目前不需要一个,我需要我的JS在全局范围内运行(因为没有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"]
    }
  ]
}

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

1 个答案:

答案 0 :(得分:5)

决定将我过长的评论移到答案上。

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