UPDATE (5/24/2013): Вы можете использовать новый chrome.commands
API, который обеспечивает встроенную поддержку рамочных команд клавиатуры.
Оригинальный ответ следующим образом:
Шаг 1: Используйте content script связать нажатие слушателя на каждой странице.
// in the content script, listen for Crtl+Shift+E (upper or lowercase)
document.documentElement.addEventListener("keypress", function(event) {
if((e.keyCode == 69 || e.keyCode == 101) && e.ctrlKey && e.shiftKey) {
// do something (step 2, below)
}
}, true);
Шаг 2: Для действий за пределами скрипта содержимого используйте message passing уведомить справочную страницу, которая была нажата клавиша быстрого доступа, и он должен выполнить какое-либо действие.
Этап 3: Фоновая страница выполняет некоторые действия. В настоящее время невозможно (и, скорее всего, never be possible) открыть всплывающее окно браузера, но вы можете отправить интерактивный desktop notification, открыть новую вкладку или сделать многое другое.
[EDIT: Код изменен, чтобы включить предложения Роба В.; см. его важные примечания по безопасности в комментарии ниже.]
Я привязал событие к документу document.documentElement, с третьим параметром ([useCapture] (https://developer.mozilla.org/en/DOM /element.addEventListener)) установлено значение 'true'. Разработка: 1. 'document.body' может быть' null' для неполных документов. 2. Когда для параметра 'useCapture' установлено значение true,' event.stopPropagation() 'страницы не будет препятствовать запуску вашего слушателя. ** Предупреждение. Возможно симуляция этого события на странице. Не добавляйте потенциально опасную операцию в ярлык. ** –