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 altKeyctrlKeymetaKey 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.

Versuchen Sie es selbst

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

Versuchen Sie es selbst

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!");
  }
}

Versuchen Sie es selbst

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

Versuchen Sie es selbst

Verwandte Seiten

HTML DOM Referenzhandbuch:KeyboardEvent key-Eigenschaft

HTML DOM Referenzhandbuch:KeyboardEvent keyCode-Eigenschaft

HTML DOM Referenzhandbuch:KeyboardEvent charCode-Eigenschaft