1

我正在开发扩展程序,我希望我的 chrome 扩展程序可以通过命令(mac:“CMD+SHIFT+9”或默认值:“Ctrl+Shift+9”)切换(显示/隐藏);虽然我在清单文件中定义了命令:

{
  ......... 
  "commands": {
    "toggle-window": {
      "suggested_key": {
        "default": "Ctrl+Shift+9",
        "mac": "Command+Shift+9"
      },
      "description": "Toggle feature foo",
      "global": true
    },
    ........
 }

现在,我可以在我的 backgroundScript.js 中做什么来做到这一点?

我的 backgroundScript.js 是:

chrome.commands.onCommand.addListener(function(command) {
  if(command === "toggle-window") {
      console.log('Command:', command);
      /* Logic to show/hide will go here..*/
  }
});

我该怎么做?谢谢!

实现了此“显示/隐藏”功能的示例扩展演示:

https://chrome.google.com/webstore/detail/meldium-browser-extension/fdocegmnehjgfhfjelhmaobjccoiklle

4

1 回答 1

0

经过长时间的研究,我终于解决了。首先,感谢@CViejo,他给了我一个提示:

“只需在清单文件中使用“_execute_browser_action”而不是“toggle-window”,chrome 将为您处理此功能。

正如@CViejo 所说,我像这样更新了 manifest.js 文件:

{
  ......... 
  "commands": {
    "_execute_browser_action": {
      "suggested_key": {
        "default": "Ctrl+Shift+9",
        "mac": "Command+Shift+9"
      }
    }
    ........
 }

然后,我重新加载了我的扩展程序,但它仍然没有工作.. 然后我只是在扩展程序页面底部找到键盘快捷键框,我在网上阅读了它,它基本上帮助我们“验证建议的键实际上设置在那里在清单文件中定义的键盘快捷键框”。我检查了键盘快捷键框,没有设置该键,即使该键可用并在清单中定义。

然后从堆栈溢出中,我发现了这个(这是一个重大错误):https ://stackoverflow.com/a/25654514/5228251

正如您在此处的源代码中看到的那样: https ://code.google.com/p/chromium/codesearch#chromium/src/chrome/browser/extensions/api/commands/command_service.cc&l=303&sq=package:chromium&rcl= 1409677023

键绑定更新仅在触发 OnExtensionWillBeInstalled 回调时运行。

因此,您需要卸载并重新安装本地扩展程序才能看到默认键盘命令出现在:chrome://extensions/configureCommands

我刚刚卸载了一个重新安装的解压扩展并检查了默认键盘命令是否出现在 chrome://extensions/configureCommands

它开始在我的扩展中工作......

非常感谢@CViejo 和@Stephane Brillant...

愿这也对其他人有所帮助......

于 2015-09-22T06:25:31.273 回答