Ответ 1
Как-то сочетания клавиш начали работать после того, как я установил ярлыки только одним из Ctrl/Cmd/Alt/Shift. Итак, Alt + S работал, но Alt + Shift + S не работал.
Я пытаюсь добавить некоторые сочетания клавиш в свое расширение 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 и нажал кнопку "Сочетания клавиш" в правом нижнем углу, я смог вручную установить комбинацию горячих клавиш, и тогда она заработала. Но я не хочу, чтобы пользователь выполнял эту ручную работу.
Как-то сочетания клавиш начали работать после того, как я установил ярлыки только одним из Ctrl/Cmd/Alt/Shift. Итак, Alt + S работал, но Alt + Shift + S не работал.
В Chrome 29
вам нужно перейти к chrome://extensions/
и прокрутить вниз до нижней части страницы. С правой стороны находится кнопка Keyboard shortcuts
.
Модальный диалог появляется со всеми расширениями, которые зарегистрировали некоторый commands
в своем файле манифеста.
Но сами ярлыки Not set
, поэтому пользователь должен установить их вручную.
Как вы можете видеть в исходном коде здесь: 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
Если вы изменили свой код после загрузки своего расширения, вам нужно его удалить и перезагрузить.
Ваш (и мой) 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"
}
}
}
Он работает для вас?
Ребята это очень очевидно!
Ctrl
+ Shift
+ J
Ctrl
+ Shift
+ S
Ctrl
+ Shift
+ U
Все встроенные функции браузера!
Который нельзя переопределить!
Просто сделайте свой ярлык не встроенным.
Список ярлыков браузера Chrome можно найти здесь
Пример:
Ctrl
+ Shift
+ L
Будет работать для запуска Browser_Action
.
Если вы тестируете свой ярлык с помощью console.log, он не будет отображаться. Возможно, протестируйте его с помощью chrome.tabs.create({url: " http://www.google.com/" });
Для этого потребуются разрешения на вкладки.
Я боролся с той же проблемой, что и ярлык "_execute_browser_action" не был установлен автоматически, несмотря на то, что он не противоречил каким-либо существующим ярлыкам.
Оказывается, моя проблема вызвана следующим:
...
"commands" : {
"_execute_browser_action": {
"suggested_key": {
"mac": "Alt+J",
"linux": "Ctrl+Shift+J"
},
"global": true <-- this shouldn't be here
}
...
Удаление "глобального": истинно разрешена моя проблема. Надеюсь, это поможет.
Добавление ко всем правильным ответам выше: После удаления и добавления расширения на странице расширений ярлык все еще не применялся к текущему окну, в котором я работал. Он работал только после того, как я открыл новое окно Chrome.
Согласно документации:
Пользователь может назначить любой ярлык глобальным, используя пользовательский интерфейс в chrome://extensions\Keyboard Shortcuts, но разработчик расширения ограничен указанием только Ctrl + Shift + [0..9] в качестве глобальных горячих клавиш. Это позволяет минимизировать риск переопределения ярлыков в других приложениях, поскольку, если, например, Alt + P будет разрешен как глобальный, ярлык печати может не работать в других приложениях.