将 onClicked 处理程序添加到浏览器操作中,而无需弹出?

Add onClicked handler to browser action without popup?

提问人:Fabrício Matté 提问时间:4/11/2013 更新时间:4/11/2013 访问量:1114

问:

我从Chrome扩展程序开始。

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

基本上我想做的是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"]
    }
  ]
}

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

javascript 谷歌浏览器扩展程序

评论


答:

5赞 BeardFist 4/11/2013 #1

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

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

评论

0赞 Less 10/10/2014
实际上你可以使用一些 API 方法,比如 developer.chrome.com/extensions/content_scriptschrome.*chrome.extension
0赞 BeardFist 10/10/2014
@Less这就是为什么我说“差不多”,因为你可以使用的非常有限。