2012-04-30 12 views
4

ショートカットキーでGoogle Chromeの拡張機能を開く/開始することは可能ですか?たとえば、CTRL + Eと言ってショートカットを割り当てて内線番号を開いて開始したいとします。ショートカットキーで拡張機能を有効にする

誰もこれまでに行ったことはありますか?

答えて

5

UPDATE(2013年5月24日):あなたは、キーボードコマンドのための組み込みのフレームワークのサポートを提供する新しい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: Rob W.の提案を含むように編集されたコード。以下のコメントのセキュリティに関する重要なノートを参照してください。]

+2

私はイベントをdocument.documentElementにバインドし、3番目のパラメータ([useCapture](https://developer.mozilla.org/en/DOM) /element.addEventListener))をtrueに設定します。精緻化:1.不完全な文書の場合、 'document.body'は' null'です。 2. 'useCapture'がtrueに設定されている場合、ページの' event.stopPropagation() 'はリスナーのトリガを妨げません。 **警告:このイベントをページでシミュレートすることは可能です。ショートカットに潜在的に危険な操作を添付しないでください。** –

関連する問題