У меня есть расширение Chrome для пользовательских сочетаний клавиш, которое в настоящее время регистрирует сочетания клавиш с помощью сценария содержимого. Можно ли вместо этого зарегистрировать их в фоновом JS-файле, вызываемом из background.html? В моих тестах кажется, что зарегистрированные там привязки игнорируются, потому что они идут прямо на страницу.
Если это имеет значение, я использую https://github.com/madrobby/keymaster для создания/прослушивания для привязки клавиш. Например, используя что-то вроде:
key('a', function(){ alert('you pressed a!') });
... в моем файле background.js игнорируется, но он отлично работает, если используется в сценарии содержимого. Есть ли способ прослушивать нажатия клавиш в моем background.js?
Ответ 1 · рейтинг 3 · Sai Prasad
Нет, ты не можешь...
Как вы, возможно, уже знаете, фоновая страница выполняется на другой странице (даже в другом процессе). И обработчики на основе javascript работают на той странице, на которую они помещены. То, что вы сказали, будет возможно, только если Chrome предоставит некоторый API.
Но вы можете проверить функцию привязки клавиш Chrome (экспериментальную) по адресу http://code.google.com/chrome/extensions/experimental.keybinding.html, хотя он ограничивается только определенным подмножеством сочетаний клавиш.
Как упомянул Роб В., привязки клавиш по дизайну работают только на страницах, где может быть вставлен сценарий контента, который более или менее сводится к http, https и файловым протоколам (хотя я не уверен в файловом протоколе), за исключением Chrome Интернет-магазин