代码之家  ›  专栏  ›  技术社区  ›  Brian Spilner

Chrome命令API

  •  14
  • Brian Spilner  · 技术社区  · 11 年前

    我已经从使用命令API的Chrome文档中加载了这个示例扩展。

    宣言.json

    {
    "name": "Sample Extension Commands extension",
      "description": "Press Ctrl+Shift+F (Command+Shift+F on a Mac) to open the browser action popup, press Ctrl+Shift+Y to send an event (Command+Shift+Y on a Mac).",
      "version": "1.0",
      "manifest_version": 2,
      "background": {
        "scripts": ["background.js"],
        "persistent": false
      },
      "browser_action": {
        "default_popup": "browser_action.html"
      },
      "commands": {
        "toggle-feature": {
          "suggested_key": { "default": "Ctrl+Shift+Y" },
          "description": "Send a 'toggle-feature' event to the extension"
        },
        "_execute_browser_action": {
          "suggested_key": {
            "default": "Ctrl+Shift+F",
            "mac": "MacCtrl+Shift+F"
          }
        }
      }
    }
    

    背景.js

    chrome.commands.onCommand.addListener(function(command) {
      console.log('onCommand event received for message: ', command);
    });
    

    非常简单,但侦听器回调没有被触发——我在控制台中没有得到任何输出,也没有任何错误。如果我使用其他API,例如选项卡,我的侦听器会被触发,这只是命令API对我不起作用。

    2 回复  |  直到 11 年前
        1
  •  16
  •   Community Alok Save    7 年前

    评论员 rsanchez 提供了正确的答案:

    您正在使用未打包的扩展吗?您需要删除并重新添加要考虑的建议循环密钥的扩展。

        2
  •  0
  •   yrizk    7 年前

    我遇到了同样的问题,这些建议也无济于事。以下是我的发现:由于您在 background: {} 部分,它会登录到后台页面。您可以通过在 chrome://extensions 。这是侦听器登录的位置。