KeyboardEvent which-Eigenschaft
Definition und Verwendung
which-Eigenschaft gibt den auslösenden onkeypress-Ereignis des gedrückten Tasten Unicode-Zeichencodes oder des auslösenden onkeydown oder onkeyup Unicode-Tastaturcode des gedrückten Tastenereignisses
Unterschied zwischen den beiden Code-Typen:
- Zeichencode - repräsentiert die Nummer des ASCII-Zeichens
- Tastaturcode - repräsentiert die Nummer der tatsächlichen Taste auf der Tastatur
Diese Typen bedeuten nicht immer dasselbe. Zum Beispiel sind die Tastaturcodes für Kleinbuchstabe "w" und Großbuchstabe "W" gleich, da die auf der Tastatur gedrückte Taste die gleiche ist ("W" = Zahl "87"), aber die Zeichencodes unterschiedlich, da der resulting Zeichen unterschiedlich ist ("w" oder "W", d.h. "119" oder "87") - Bitte schauen Sie sich die folgenden Beispiele an, um dies besser zu verstehen.
Hinweis:Um zu überprüfen, ob der Benutzer eine druckbare Taste gedrückt hat (z.B. "a" oder "5"), wird empfohlen, diese Eigenschaft im onkeypress-Event zu verwenden. Um zu überprüfen, ob der Benutzer eine Funktionstaste gedrückt hat (z.B. "F1", "CAPS LOCK" oder "Home"), verwenden Sie bitte die onkeydown- oder onkeyup-Events.
Anmerkung:IE8 und frühere Versionen unterstützen die which-Eigenschaft nicht. Für diese Browserversionen können Sie den keyCode-Attribut verwenden. Allerdings funktioniert der keyCode-Attribut im onkeypress-Event von Firefox nicht. Für eine crossbrowserliche Lösung können Sie den folgenden Code verwenden:
var x = event.which || event.keyCode; // Which oder keyCode verwenden, abhängig von der Browserunterstützung
Hinweis:Für eine Liste aller Unicode-Zeichen besuchen Sie unsere Vollständige Unicode-Referenz.
Hinweis:Wenn Sie Unicode-Werte in Zeichen umwandeln möchten, verwenden Sie fromCharCode() Methode.
Anmerkung:Diese Eigenschaft ist schreibgeschützt.
Anmerkung:Die keyCode- und which-Eigenschaften werden nur zur Kompatibilität bereitgestellt. Die neueste Version der DOM-Event-Spezifikation empfiehlt, den key-Attribut anstelle davon zu verwenden (wenn verfügbar).
Hinweis:Wenn Sie wissen möchten, ob die Taste "ALT", "CTRL", "META" oder "SHIFT" gedrückt wurde, wenn ein Tastenevent auftritt, verwenden Sie altKey、ctrlKey、metaKey oder shiftKey Eigenschaft.
Beispiel
Erhalten Sie den Unicode-Wert der gedrückten Taste:
var x = event.which;
Unten auf der Seite gibt es mehr TIY-Beispiele.
Syntax
event.which
Technische Details
Rückgabewert: | Zahlwerte, die Unicode-Zeichencodes oder Unicode-Tastaturcodes darstellen. |
---|---|
DOM-Version: | DOM Level 2 Events |
Browserunterstützung
Die Zahlen in der Tabelle weisen auf die erste Browserversion hin, die diese Eigenschaft vollständig unterstützt.
Eigenschaft | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
which | Unterstützt | 9.0 | Unterstützt | Unterstützt | Unterstützt |
Mehr Beispiele
Beispiel
Verwenden Sie onkeypress und onkeydown, um den Unterschied zwischen Zeichencode und Tastaturcode zu demonstrieren:
<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)"> function uniCharCode(event) { var char = event.which || event.keyCode; // event.keyCode wird für IE8 und frühere Versionen verwendet document.getElementById("demo").innerHTML = "Unicode CHARACTER code: " + char; } function uniKeyCode(event) { var key = event.which || event.keyCode; // event.keyCode wird für IE8 und frühere Versionen verwendet document.getElementById("demo2").innerHTML = "Unicode KEY code: " + key; }
Drücken Sie die Taste "a" auf der Tastatur (ohne Capslock zu verwenden), dann werden die Ergebnisse von char und key sein:
Unicode CHARACTER code: 97 Unicode KEY code: 65
Beispiel
Wenn der Benutzer die Escape-Taste drückt, wird einige Text angezeigt:
<input type="text" onkeydown="myFunction(event)"> function myFunction(event) { var x = event.which || event.keyCode; // event.keyCode wird für IE8 und frühere Versionen verwendet if (x == 27) { // 27 ist die ESC-Taste alert("Sie haben die Escape-Taste gedrückt!"); } }
Beispiel
Unicode-Wert in Zeichen umwandeln (nicht für Funktionstasten geeignet):
var x = event.which || event.keyCode; // Unicode-Wert erhalten var y = String.fromCharCode(x); // Wert in Zeichen umwandeln
Verwandte Seiten
HTML DOM Referenzhandbuch:KeyboardEvent key-Eigenschaft
HTML DOM Referenzhandbuch:KeyboardEvent keyCode-Eigenschaft
HTML DOM Referenzhandbuch:KeyboardEvent charCode-Eigenschaft