2009-05-08 6 views
1

Ich müde, eine Funktion zu schreiben, um Schlüsselcode mit Javascript zu überprüfen. Es funktioniert gut für Firefox, aber nicht IE. Weiß jemand, was mit meinem Code falsch läuft? Weitere Informationen finden Sie unter dem Code.Key Code Check in Javascript funktioniert nicht für IE

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

Bitte fügen Sie Ihre Call-Site hinzu, damit wir sehen können, wie Sie diese Funktion aufrufen. –

Antwort

3

Ihre erste Codezeile wechseln:

...

var e = e || window.event; 

...

und sehen, ob das hilft.

Auch, wenn es sich um ein Unicode-Zeichen ist so etwas wie versuchen Sie Folgendes:

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

Wenn Sie keydown statt keypress sind Handhabung, dann die Dinge ein wenig komplizierter werden ... Siehe: http://unixpapa.com/js/key.html

1

keyCode- und charCode-Werte verhalten sich in verschiedenen Browsern leicht unterschiedlich und geben unterschiedliche Werte für verschiedene Ereignisse zurück. Insbesondere ältere Versionen von IE unterstützen charCode nicht. Der erste Vorschlag, den ich habe, ist, ein Tool wie jQuery zu verwenden, um die Normalisierung der Schlüsselwerte zwischen Browsern zu handhaben. Mit jQuery können Sie die Eigenschaft e.which für das Ereignisobjekt verwenden, um den normalisierten Wert zu erhalten.

Die andere Sache zu tun ist, verwenden Sie einen Schlüsselcode-Checker, um die Werte für jedes Ereignis für jeden Browser zurückgegeben zu vergleichen. Ich baute ein praktisches Online-Tool, dies zu tun und fand es sehr nützlich, auf einem Blick für jedes der Ereignisse all keycodes/Zeichencodes zeigen:

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

macht es wirklich einfach, mit verschiedenen Tastenkombinationen zu experimentieren und Sehen Sie, wie sie auf verschiedenen Browsern vergleichen. jQuery's which und keypress tendieren dazu, am konsequentesten zu funktionieren.