2009-05-08 6 views
1

JavaScriptでキーコードをチェックする機能に疲れました。 Firefoxではうまく動作しますが、IEではうまく動作しません。誰かが私のコードで間違っていることを知っていますか?詳細については、下記のコードを参照してください。JavaScriptでのキーコードチェックがIE用に機能していない

function textCheck(e) 
{ 
var e = window.event || e 
alert("CharCode value: "+e.charCode) 
alert("Character: "+String.fromCharCode(e.charCode)) 
} 
+1

この機能をどのように呼び出しているかわかるように、コールサイトを追加してください。 –

答えて

3
コードのあなたの最初の行に切り替える

:...

var e = e || window.event; 

を...

、それが助けかどうかを確認します。

それはユニコード文字である場合にも、以下のような何か試してください:あなたの代わりにkeypressの​​を処理している場合は見る事はもう少し複雑になり、その後、

function displayunicode(e) { 
    var unicode=e.keyCode? e.keyCode : e.charCode 
    alert(unicode) 
} 

を:http://unixpapa.com/js/key.html

1

keyCodeとcharCodeの値はブラウザによって多少異なりますが、さまざまなイベントに対して異なる値が返されます。特にIEの古いバージョンはcharCodeをサポートしていません。私が最初に提案しているのは、jQueryのようなツールを使ってブラウザ間でキー値を正規化することです。 jQueryでは、イベントオブジェクトのe.whichプロパティを使用して正規化された値を取得できます。

もう1つのことは、キーコードチェッカーを使用して、各ブラウザの各イベントで返される値を比較することです。私はこれを行うには便利なオンラインツールを構築し、一目でイベントごとに、すべてのキーコード/ charcodesを表示することが極めて有用であることが判明:

http://www.west-wind.com/WestwindWebToolkit/samples/Ajax/html5andCss3/keycodechecker.aspx

は異なるキーの組み合わせを試して、それは本当簡単になりますし、さまざまなブラウザでどのように比較するかをご覧ください。 jQueryのキーとキーは、一貫して機能するものです。

関連する問題