用于切换(隐藏/显示)我的Chrome扩展程序的键盘快捷键

时间:2015-09-21 13:04:54

标签: javascript jquery google-chrome-extension browser-action

我正在进行扩展,我希望我的chrome扩展程序可以通过命令切换(显示/隐藏),例如say(mac:" CMD + SHIFT + 9"或默认:" Ctrl + Shift + 9&#34); 虽然我在清单文件中定义了命令:

{
  ......... 
  "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

1 个答案:

答案 0 :(得分:0)

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

  

“只需​​在清单文件中使用”_execute_browser_action“代替”toggle-window“,chrome就会为您处理此功能。

我更新了我的manifest.js文件,如@CViejo所说:

{
  ......... 
  "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时运行   回调被触发。

     

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

我刚刚卸载了重新安装的解压缩扩展程序,并检查了chrome:// extensions / configureCommands

中显示的默认键盘命令

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

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

愿这也有助于其他人......

相关问题