19

そのため、さまざまなブラウザーがさまざまなキーコードを報告しているというフォーラムの投稿を見てきましたが、誰もが「なぜ?」を避けているようです。

コロン (:) keyCode をキャプチャしようとしていたところ、Firefox が e.keyCode 56 を報告しているのに気付きました。一方、Chrome は 186 を報告しています (それがそうだったと思います)。

すべてのブラウザで正しい keyCode を取得する普遍的な方法はありますか?

また、同じキーであるのに、なぜ異なるのでしょうか?

同じキーを押す国際的な方法があるかどうかについては、もっと興味があります。

ありがとう。

4

5 に答える 5

18

ユーザーが押した物理キーまたはユーザーが入力した文字に関心があるかどうかによって異なります。それがあなたが求めているキャラクターである場合、すべての主要なブラウザーで確実に取得できます (ほとんどのブラウザーまたはIE <= 8 でkeypressイベントのwhichプロパティを使用) が、イベントでのみです。キーを探している場合は、orイベントを使用してプロパティを調べてください。ただし、正確なキーコード マッピングはブラウザーによって多少異なります。keyCodekeypresskeydownkeyupkeyCode

すべての JavaScript キー関連イベントの優れた説明とリファレンスは、 http: //unixpapa.com/js/key.htmlにあります。

すべての主要なブラウザーでユーザーがコロン文字を入力していることを確実に検出するには、次のようにします。

document.onkeypress = function(e) {
    e = e || window.event;
    var charCode = (typeof e.which == "number") ? e.which : e.keyCode;
    if (charCode && String.fromCharCode(charCode) == ":") {
        alert("Colon!");
    }
};
于 2010-10-07T16:12:56.133 に答える
13

これらのキーが異なる理由については、 http: //unixpapa.com/js/key.htmlを参照してください。キーを一致させる国際的な方法を知りません。

于 2010-10-07T16:10:39.650 に答える
0

「:」文字のキーコードを取得するように JavaScript を作成する必要があると思います。そうすれば、スクリプトは特定の環境でそれが何であるかを知ることができます。ここでも、stackoverflow で同様の質問がありました。

于 2010-10-07T16:13:04.420 に答える