2012-05-10 9 views
2

[OK]を使用すると、特殊記号のキーコードをキャプチャすると、異なるレイアウトのキーボードで異なる結果が生成されます。しかし、a-zのような「共通」文字はどうですか? QWERTYキーボードをお持ちの場合、qと入力すると、キーコード81が表示されます。あなたがAZERTYキーボードを持っている場合、aを押すとコード81が得られます。aqであるはずですからです。それともマッピングが違うのですか?国際キーボードの共通文字のキーコード

EDIT:

私はその下のコメントで説明として、私は受け入れ答えは、おそらくあなたは、キーをキャプチャし、 '本当に「A」であることを確認したいしている最善の解決策ですが、 、私はまだキーコードがint'lキーボードを使用しているときにどのように '翻訳'されているのか不思議です。つまり、ソースは少なくともa-zは一貫しているべきだと示唆していますが、私はこれ(または実際に試した人)のサポートを見つけることができません。

+0

あなたはAZERTYキーボードを持っているなら、なぜあなたはちょうどので、私はしません –

+0

それを試すことができません私はできません。さらに、これは簡単な例ですが、私はロシア語、スワヒリ語、ウガンダ語などのレイアウトで考えることができない「共通の」アルファベットキーにはさらに問題があると考えています。うまくいけない、もちろん。 – kasimir

答えて

1

keyupまたは​​ではなくkeypressイベントを使用すると、その場合にキーコードではなく文字コードが表示されるため、問題は解決しません。

例:

document.onkeypress = function(e) { 
    e = e || window.event; 
    var charCode = (typeof e.which == "undefined") ? e.keyCode : e.which; 
    alert(String.fromCharCode(charCode)); 
}; 

そしてここにJavaScriptでキーの取り扱い上の決定的なリソースがあります:http://unixpapa.com/js/key.html

+0

私は既に、確かに明確なリソースを見つけました、私は同意します!私は実際にこの文書のためにこの質問をするようになりました。なぜなら、3.3より下ではキーコードがリストされており、a-zのような「共通」文字がASCIIコードを返すように見えるようです。しかし、それはまた、コードがキーボードドライバによって変換されると述べています...ちょっと困惑しています。私はあなたのソリューションがキーボードのドライバ、ブラウザなどの影響を省略しているので、あなたのソリューションがうまくいくと思います。 – kasimir

関連する問題