構築したサイトに次のjQueryコードがあります。
$(document).ready(function() {
// Other Bindings/Initializations Removed
// Hotkey Event Handler to 'doSomething'
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
$(document).keypress("a",function(e) {
if(e.altKey) { // Doesn't work
doSomething();
}
});
// Hotkey Event Handler to 'doSomething'
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
$(document).keypress("a",function(e) {
if(e.shiftKey) { //Works as Expected?
doSomething();
}
});
});
コードは、キーと押下の組み合わせイベント(この場合は「Alt-A」)をキャッチし、適切なアクションを実行する関数の呼び出しに進みます。この機能をFireFoxでテストしたところ、期待どおりに関数が呼び出されました。Chromeで機能をテストしたところ、関数は呼び出されず、代わりに不快なエラートーンが鳴りました。「Alt-A」が重要なブラウザのホットキーの組み合わせと衝突したのではないかと思ったので、「A」を「N」、「G」、「K」に変更しました。関数が呼び出されず、エラートーンが発せられるたび。ただし、Shift-A / N / G / Kホットキーの組み合わせを作成したとき、Chromeは期待どおりに関数を呼び出しました。
Chromeが「Alt」キーを異なる方法で処理するのはなぜですか?
「Alt」キーを使用してChromeで機能するように、サイトのホットキーを定義するにはどうすればよいですか?