2016-08-09 15 views
1

私のアプリケーションでiframeを使用しています。私はキーボードから任意のキーを押すと文字列値を返す。キーダウンキーコードが期待される文字列値を返さない

他のすべてのキーは、キー219 ,220, 221を除く予想される文字列の値が返されます。

これらのキーは、"Û", "Û", "Ý"これらの値です。

しかし、私はこれらの文字列の値"[", "]", "\"を期待しています。

これらのキーから正しい文字を取得するにはどうすればよいですか?

+0

あなたの問題のためにフィドルを共有することができます。 – sameer

+0

「91」、「93」、「92」ではないでしょうか? –

+0

@sameer彼の言うことは部分的に正しいです。あなたはフィドルが必要ありません。 –

答えて

3

​​およびkeyupは、入力キーボードの種類(地域ごとに異なるキーボードなど)によって、キーボードによって異なるキーコードを使用します。 paranoically私は傾向があるが、印刷可能な文字については

、あなたは(それがcharCodeであなたを与える、(もしあれば)あなたの文字のキーの翻訳値を与える、keypressを発行するブラウザを待つ必要e.charCode || e.which;するかもしれない、多分それはばかげている)。たとえば、私のキーボードには、* nixの設定のやり方では、​​/keyupのキーコード220で、£の文字が生成されます。しかし、異なるキーボードレイアウトのWindowsを実行している仮想マシンでは、同じキーは​​/keyupのキーコード220ですが、文字は#です。

例:

function handler(e) { 
 
    var msg = "Received " + e.type; 
 
    if (e.type === "keypress") { 
 
    // keypress 
 
    msg += " '" + String.fromCharCode(e.charCode || e.which) + "'"; 
 
    } else { 
 
    // keydown/keyup 
 
    msg += " " + (e.which || e.keyCode); 
 
    } 
 
    console.log(msg); 
 
} 
 
document.addEventListener("keydown", handler, false); 
 
document.addEventListener("keyup", handler, false); 
 
document.addEventListener("keypress", handler, false);
Click here to focus the document, then press keys.

+2

それはすべての経験についてです.. ___〜25 years___ – Rayon

関連する問題