2012-04-30 2 views
4

Можно ли открыть или запустить расширение Chrome для Chrome с помощью клавиши быстрого доступа. Например, я хотел бы назначить короткий разрез, скажем, CTRL + E, чтобы открыть мое расширение и инициировать его.Активировать расширение с помощью клавиши быстрого доступа

Кто-нибудь сделал это раньше?

ответ

5

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: Код изменен, чтобы включить предложения Роба В.; см. его важные примечания по безопасности в комментарии ниже.]

+2

Я привязал событие к документу document.documentElement, с третьим параметром ([useCapture] (https://developer.mozilla.org/en/DOM /element.addEventListener)) установлено значение 'true'. Разработка: 1. 'document.body' может быть' null' для неполных документов. 2. Когда для параметра 'useCapture' установлено значение true,' event.stopPropagation() 'страницы не будет препятствовать запуску вашего слушателя. ** Предупреждение. Возможно симуляция этого события на странице. Не добавляйте потенциально опасную операцию в ярлык. ** –

Смежные вопросы