JavaScriptを使用した堅牢なキーボードショートカット処理
-
03-07-2019 - |
質問
JavaScriptを使用してWebアプリケーションのグローバルキーボードショートカットハンドラーを作成する最も堅牢な方法は何ですか?つまり、どのイベントを処理する必要があり、どのイベントハンドラーをアタッチする必要がありますか?
単一のキー押下ショートカットと修飾キーを使用したショートカットの両方を処理できる、Gmailのシステムのようなものが必要です。 Ctrl + Bなど。コードはIE 6および最新のブラウザーで動作する必要があります。
使用できるプロトタイプフレームワークはありますが、jQueryは使用できません。jQuery固有の回答はありません。
解決
LivePipeコントロールパッケージで利用可能なHotKeyライブラリは、Prototypeで動作し、IE互換です。
他のヒント
もう1つミックスに追加すると思った。最近、Mousetrapというライブラリをリリースしました。 http://craig.is/killing/mice
で確認してください。JimmyPはこれをコメントとして投稿しましたが、投票目的での回答に値します。
私がすることは、onKeyUpイベントをdocument.bodyに添付することです。次に、このイベントハンドラーで、 Element.fire メソッドを使用してカスタムイベントを起動します。この手順はオプションですが、実行するアクションからイベントハンドラーを分離するのに役立ちます。ボタンクリックイベントなどと同じカスタムイベントハンドラーを使用できます。
$(document.body).observe("keyup", function() {
if(/* key + modifier match */) {
$(document.body).fire("myapp:mycoolevent");
}
});
$(document.body).observe("myapp:mycoolevent", function() {
// Handle event.
});
後で、同じイベントをボタンクリックにバインドするには:
$(button).observe("click", function() {
$(document.body).fire("myapp:mycoolevent");
});
修飾キーの処理に関する限り、このリソースをご覧ください。 (非常に古いが、まだ適用可能に見えます)詳細については。
jwerty という新しいJavaScriptライブラリもあり、使いやすく、依存していませんjQuery。