Сочетания клавиш на chrome.com не работают

Я пытаюсь добавить некоторые сочетания клавиш в свое расширение 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 и продолжил пробовать Command + Shift + Y на моем Mac, и ничего не произошло. Около 2 часов я пытался установить различные комбинации горячих клавиш в manifest.json, но ни одна из них не сработала. Я перешел с Dev-версии Chrome на стабильную версию, но безрезультатно. Когда я перешел к chrome://extensions и нажал кнопку "Сочетания клавиш" в правом нижнем углу, я смог вручную установить комбинацию горячих клавиш, и тогда она заработала. Но я не хочу, чтобы пользователь выполнял эту ручную работу.

Ответы

Ответ 1

Как-то сочетания клавиш начали работать после того, как я установил ярлыки только одним из Ctrl/Cmd/Alt/Shift. Итак, Alt + S работал, но Alt + Shift + S не работал.

Ответ 2

В Chrome 29 вам нужно перейти к chrome://extensions/ и прокрутить вниз до нижней части страницы. С правой стороны находится кнопка Keyboard shortcuts.

Модальный диалог появляется со всеми расширениями, которые зарегистрировали некоторый commands в своем файле манифеста. Но сами ярлыки Not set, поэтому пользователь должен установить их вручную.

Ответ 3

Как вы можете видеть в исходном коде здесь: 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

Ответ 4

Если вы изменили свой код после загрузки своего расширения, вам нужно его удалить и перезагрузить.

Ответ 5

Ваш (и мой) Command + Shift + Y нажатие клавиши, скорее всего, используется другим приложением OSX (возможно, липкой).

Это работает на моем комбо Mac/Chrome (сменил Y на U):

"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"
    }
  }
}

Он работает для вас?

Ответ 6

Ребята это очень очевидно!

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

Все встроенные функции браузера!
Который нельзя переопределить!
Просто сделайте свой ярлык не встроенным.

Список ярлыков браузера Chrome можно найти здесь

Пример:

  • Ctrl + Shift + L

Будет работать для запуска Browser_Action.

Ответ 7

Если вы тестируете свой ярлык с помощью console.log, он не будет отображаться. Возможно, протестируйте его с помощью chrome.tabs.create({url: " http://www.google.com/" });

Для этого потребуются разрешения на вкладки.

Ответ 8

Я боролся с той же проблемой, что и ярлык "_execute_browser_action" не был установлен автоматически, несмотря на то, что он не противоречил каким-либо существующим ярлыкам.

Оказывается, моя проблема вызвана следующим:

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

Удаление "глобального": истинно разрешена моя проблема. Надеюсь, это поможет.

Ответ 9

Добавление ко всем правильным ответам выше: После удаления и добавления расширения на странице расширений ярлык все еще не применялся к текущему окну, в котором я работал. Он работал только после того, как я открыл новое окно Chrome.

Ответ 10

Согласно документации:

Пользователь может назначить любой ярлык глобальным, используя пользовательский интерфейс в chrome://extensions\Keyboard Shortcuts, но разработчик расширения ограничен указанием только Ctrl + Shift + [0..9] в качестве глобальных горячих клавиш. Это позволяет минимизировать риск переопределения ярлыков в других приложениях, поскольку, если, например, Alt + P будет разрешен как глобальный, ярлык печати может не работать в других приложениях.