2

私はChromeの拡張機能を構築していますにショートカット、および割り当てられたコマンド_execute_browser_action J+ Altキーへ。私は、私は_execute_browser_actionが異なるコマンドのショートカットを介して呼び出されたくトリガーChrome拡張機能

chrome.commands.onCommand.addListener(function(command) { /* ... */ }); 

を使用して、すべてのコマンドを待ち受けるbackground.jsでこれをシミュレートしたい + K

Cmdを + Shiftキーを言います私のマニフェストで、私は以下を宣言しました:

これは私のbackground.jsです:

chrome.commands.onCommand.addListener(function(command) { 
    console.log('onCommand event received for message: ', command); 
    if (command === "asdf") { 
    alert("asdf"); 
    var keyPress = jQuery.Event("keypress"); 
    keyPress.altKey = true; 
    keyPress.ctrlKey = false; 
    keyPress.which = 74; 
    //how do I trigger this? 
    } 
}); 

私はpopup.htmlが開くようにこれを引き起こす方法を知りたいと思います。

答えて

1

自分でキーボードショートカットを起動することはできません。その

考えるイベントのタイムラインとして、この方法は:

  1. ハードウェアイベントが発生し、入力イベントにOSによって翻訳されます。
  2. Chromeが登録されているグローバルなショートカット、またはChromeにフォーカスがある場合、OSはChromeにイベントを送信します。
  3. Chromeは登録済みのショートカットかどうかを確認します。 YESの場合、対応するイベントがトリガされます。
  4. ショートカットではなく、ページにフォーカスがある場合、ChromeはイベントをDOM入力イベントとしてページに渡します。
  5. ページにjQueryがある場合、DOMイベントを独自の内部イベントに変換し、リスナーと一致し、内部イベントをそれらにディスパッチします。

コードでは、5つのイベント(内部jQueryイベント)がトリガされます。
directly manipulating DOM eventsによって、最大4になることができます。
このスタックでは、内線番号は3に戻ることはできません。

ポップアップをコードからラウンドアバウトで開こうとしています。残念ながら、これは "普通の"拡張機能のためのsimply not possible at allです - Chromeデベロッパーチームの一部の意思決定。

UIを提供する別の方法、たとえばnotificationsを考えたり、現在のページで何かをContent Scriptsと入力すると思います。

関連する問題