質問

JavaScriptを使用してWebアプリケーションのグローバルキーボードショートカットハンドラーを作成する最も堅牢な方法は何ですか?つまり、どのイベントを処理する必要があり、どのイベントハンドラーをアタッチする必要がありますか?

単一のキー押下ショートカットと修飾キーを使用したショートカットの両方を処理できる、Gmailのシステムのようなものが必要です。 Ctrl + Bなど。コードはIE 6および最新のブラウザーで動作する必要があります。

使用できるプロトタイプフレームワークはありますが、jQueryは使用できません。jQuery固有の回答はありません。

役に立ちましたか?

解決

LivePipeコントロールパッケージで利用可能なHotKeyライブラリは、Prototypeで動作し、IE互換です。

http://livepipe.net/extra/hotkey

他のヒント

もう1つミックスに追加すると思った。最近、Mousetrapというライブラリをリリースしました。 http://craig.is/killing/mice

で確認してください。

JimmyPはこれをコメントとして投稿しましたが、投票目的での回答に値します。

http://www.openjs.com/scripts/events/keyboard_shortcuts/

私がすることは、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。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top