3

我开始使用 Chrome 扩展程序。

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

基本上我想做的是,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 弹出窗口吗?

4

1 回答 1

5

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

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

于 2013-04-11T03:45:43.897 回答