0

Firefox など、一部のブラウザでは問題があります。

コード:

$(document).ready(function(){
     $(this).keydown(function(e){         // Or keyup or keypress
          alert(***look at output***);
     }
}

"<"-"б"-"Б" (ロシア語) のように非ラテン文字を入力すると、次のように表示されます。

keydown    keyCode=0 which=0 charCode=0
keypress   keyCode=0 which=1073 charCode=1073 char=б
keyup      keyCode=0 which=0 charCode=0 

Chrome の同じ文字は次のように表示されます。

keydown    keyCode=188 which=188 charCode=0
keypress   keyCode=1073 which=1073 charCode=1073 char=б
keyup      keyCode=188 which=188 charCode=0

問題: keypress を使用せずに、すべてのブラウザーで keydown ハンドラーを識別します (キーボード レイアウトが異なると charCode が異なるため)。

4

1 に答える 1

0

解決しましたが、キーを押します。キリル文字のキーボード レイアウトで「<」、「">」が機能しない場合に、firefox バグ専用のキープレス ハンドルをリッスンする。

解決策:キーボード ボタンを押すと、キーダウン ハンドとキープレス ハンドを同時にリッスンします。キリル文字が押された場合、Firefox の keyCode 出力は 0 であり、keydown はそれを無視します。一方、keypress は keyCode == 0 を取り、「<」または「>」を出力します。

于 2012-12-26T06:36:02.340 に答える