FireFox アドオンでキーダウン/キーアップ イベントを追跡することは可能ですか? 次のシナリオに似たものを実装したいと思います。
- 修飾キーパネルを押し続けると表示されます
- これらの修飾キーを押しながら他のキーを押すと、パネルでいくつかのアクションが発生します
- 修飾キーを放すと、パネルが消える
FireFox アドオンでキーダウン/キーアップ イベントを追跡することは可能ですか? 次のシナリオに似たものを実装したいと思います。
そのためには、各ブラウザー ウィンドウにイベント リスナーを登録する必要があります。高レベルの SDK API ではブラウザー ウィンドウに直接アクセスできませんが、そのためには低レベルのモジュール、特に (現在ドキュメント化されていない)sdk/keyboard/observer
モジュールを使用する必要があります。すべてのブラウザ ウィンドウで主要なイベントをリッスンできるため、次のようなものが機能するはずです。
// Register key event handlers in each browser window
var {observer} = require("sdk/keyboard/observer");
observer.on("keydown", function(event) {
// Ignore events that have been handled elsewhere (e.g. by the web page)
if (event.defaultPrevented)
return;
if (...)
panel.show();
});
observer.on("keyup", function(event) {
// Ignore events that have been handled elsewhere (e.g. by the web page)
if (event.defaultPrevented)
return;
if (...)
panel.hide();
});
ノート:
sdk/keyboard/observer
モジュールは完全に文書化されていないため、いつでも変更または完全になくなる可能性があります。WindowTracker
から使用されていました。sdk/window-utils
ブラウザ ウィンドウを実際に自分で見たい場合は、イベントsdk/windows/observer
をリッスンできる (これも文書化されていない) モジュールを使用します。ブラウザ ウィンドウを区別する機能がモジュール経由で利用できるようになりました。また、関数を使用して、既に開いているウィンドウを考慮する必要があります。ウィンドウ オブザーバーは自動的にそれを行いません。open
close
isBrowser()
sdk/window/utils
windows()