19

我正在尝试向我的Chrome 扩展程序添加一些键盘快捷键,特别是允许用户使用热键打开浏览器操作/弹出窗口。我已阅读文档,并将以下代码行添加到manifest.json文件中:

"commands": {
  "_execute_browser_action": {
    "suggested_key": {
      "windows": "Ctrl+Shift+Y",
      "mac": "Command+Shift+Y",
      "chromeos": "Ctrl+Shift+U",
      "linux": "Ctrl+Shift+J"
    }
  }
}

添加后,我在chrome://extensions中重新加载了我的扩展程序,并继续在我的Mac上试用Command++ ,但没有任何Shift反应。大约 2 个小时,我尝试在manifest.json中设置不同的热键组合,但没有奏效。我从Chrome的开发版切换到稳定版,但无济于事。当我转到chrome://extensions并单击右下角的“键盘快捷键”按钮时,我能够手动设置热键组合,然后它就可以工作了。但我不希望用户必须做那些手动工作。Y

4

10 回答 10

26

Chrome 29您必须导航到chrome://extensions/并向下滚动到页面底部。右侧有一个按钮Keyboard shortcuts

弹出模式对话框,其中包含已commands在其清单文件中注册的所有扩展。但是快捷方式本身是Not set用户必须手动设置的。

于 2013-09-01T14:01:17.907 回答
10

在我将快捷键设置为仅包含Ctrl/ Cmd/ Alt/之一后,键盘快捷键开始起作用Shift。所以,Alt+S工作但Alt++Shift没有S工作。

于 2013-08-30T21:37:04.893 回答
10

正如您在此处的源代码中看到的那样: 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

于 2014-09-03T22:18:30.213 回答
5

如果您在加载扩展程序后修改了代码,则需要删除并重新加载它。

于 2013-11-23T07:09:48.630 回答
1

您(和我的)Command+ Shift+Y击键可能正在被另一个OSX 应用程序(可能是便签)使用。

这适用于我的Mac/Chrome组合(更改YU):

"browser_action": {
  "default_popup": "browser_action.html"
},
"commands": {
  "_execute_browser_action": {
    "suggested_key": {
      "default": "Ctrl+Shift+U",
      "windows": "Ctrl+Shift+U",
      "mac": "Command+Shift+U",
      "chromeos": "Ctrl+Shift+U",
      "linux": "Ctrl+Shift+U"
    }
  }
}

对你起作用吗?

于 2013-08-09T14:35:23.913 回答
1

伙计们,这非常明显!

  • Ctrl+ Shift+J
  • Ctrl+ Shift+S
  • Ctrl+ Shift+U

全部内置浏览器功能!
哪个不能被覆盖!
只需简单地使您的快捷方式不是内置的。

可以在此处

找到 Chrome 浏览器快捷方式的列表 示例:

  • Ctrl+ Shift+L

可以触发Browser_Action

于 2018-09-22T14:08:33.390 回答
1

根据文档

用户可以使用 chrome://extensions\Keyboard Shortcuts 中的 UI自由地将任何快捷方式指定为全局快捷方式,但扩展开发人员仅限于将 Ctrl+Shift+[0..9] 指定为全局快捷方式。这是为了最大程度地降低覆盖其他应用程序中快捷方式的风险,因为例如,如果允许将 Alt+P 作为全局快捷键,则打印快捷方式可能无法在其他应用程序中使用。

于 2019-07-18T18:58:53.040 回答
0

如果您正在使用 console.log 测试您的快捷方式,它将不会显示。也许用 chrome.tabs.create({url: " http://www.google.com/ "});

这将需要“标签”的权限。

于 2013-10-22T04:59:44.160 回答
0

尽管与任何现有的快捷键没有冲突,但我一直在努力解决“_execute_browser_action”键盘快捷键未自动设置的相同问题。

原来我的问题是由以下原因引起的:

...
"commands" : {
"_execute_browser_action": {
        "suggested_key": {
          "mac": "Alt+J",
          "linux": "Ctrl+Shift+J"
        },
      "global": true <-- this shouldn't be here
      }
...

删除 "global": true 解决了我的问题。希望这可以帮助。

于 2015-10-16T04:15:43.180 回答
0

添加到上面的所有正确答案:在扩展页面中删除并添加扩展后,快捷方式仍然不适用于我正在使用的当前窗口。它只有在我打开一个新的 chrome 窗口时才有效。

于 2018-07-09T16:51:12.590 回答