KeyboardEvent which-eigenschap

Definitie en gebruik

which-eigenschap retourneert de onkeypress event de Unicode charactercode van de ingedrukte toets, of de onkeydown of onkeyup De Unicode toetscode van de ingedrukte toets van het evenement

Het verschil tussen de twee code types:

  • Charactercode - vertegenwoordigt het numerieke nummer van de ASCII-caractert
  • Toetscode - vertegenwoordigt het numerieke nummer van de fysieke toets op het toetsenbord

Deze typen betekenen niet altijd hetzelfde. Bijvoorbeeld, de toetscode van de kleine letter "w" en de hoofdletter "W" is hetzelfde, omdat de ingedrukte toets op het toetsenbord hetzelfde is ("W" = nummer "87"), maar de charactercode is verschillend, omdat het resulterende karakter verschillend is ("w" of "W", dat wil zeggen "119" of "87") - raadpleeg de onderstaande voorbeelden voor een beter begrip.

Tip:Als je wilt weten of de gebruiker een afdrukbaar toets heeft ingedrukt (bijvoorbeeld "a" of "5"), raad ik aan om deze eigenschap te gebruiken op het onkeypress-evenement. Om te weten of de gebruiker een functietoets heeft ingedrukt (bijvoorbeeld "F1", "CAPS LOCK" of "Home"), gebruik dan het onkeydown- of onkeyup-evenement.

Opmerking:IE8 en oudere versies ondersteunen de which-eigenschap niet. Voor deze browserversies kun je de keyCode-eigenschap gebruiken. Maar de keyCode-eigenschap werkt niet voor onkeypress-evenementen in Firefox. Voor een cross-browser oplossing kun je het volgende code gebruiken: }}

var x = event.which || event.keyCode;  // Gebruik which of keyCode afhankelijk van de browserondersteuning

Tip:Voor een lijst van alle Unicode characters, raadpleeg onze Volledige Unicode referentie.

Tip:Als je een Unicode-waarde wilt omzetten naar een character, gebruik dan fromCharCode() methode.

Opmerking:Deze eigenschap is alleen leesbaar.

Opmerking:De keyCode- en which-eigenschappen worden enkel aangeboden voor compatibiliteit. De nieuwste versie van de DOM event specificatie raadt aan om de key-eigenschap te gebruiken in plaats van (indien beschikbaar).

Tip:Als je wilt weten of de "ALT", "CTRL", "META" of "SHIFT"-toets is ingedrukt bij het optreden van een toetsenevenement, gebruik dan altKeyenctrlKeyenmetaKey of shiftKey Eigenschappen.

Voorbeeld

Haal de Unicode waarde van de ingedrukte toets op:

var x = event.which;

Onder de pagina zijn er meer TIY voorbeelden.

Probeer het zelf uit

Syntax

event.which

Technische details

Retourwaarde: Numerieke waarden die de Unicode character code of Unicode keyboard code aangeven.
DOM versie: DOM Level 2 Events

Browserondersteuning

De cijfers in de tabel vermelden de eerste browserversie die deze eigenschap volledig ondersteunt.

Eigenschappen Chrome IE Firefox Safari Opera
which Ondersteuning 9.0 Ondersteuning Ondersteuning Ondersteuning

Meer voorbeelden

Voorbeeld

Gebruik onkeypress en onkeydown om het verschil tussen character codes en keyboard codes te demonstreren:

<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)"> 
function uniCharCode(event) {
  var char = event.which || event.keyCode; // event.keyCode wordt gebruikt in IE8 en oudere versies
  document.getElementById("demo").innerHTML = "Unicode CHARACTER code: " + char;
}
function uniKeyCode(event) {
  var key = event.which || event.keyCode; // event.keyCode wordt gebruikt in IE8 en oudere versies
  document.getElementById("demo2").innerHTML = "Unicode KEY code: " + key;
}

Druk op de "a"-toets op het toetsenbord (zonder Capslock) wanneer char en key het volgende resultaat zullen zijn:

Unicode CHARACTER code: 97
Unicode KEY code: 65

Probeer het zelf uit

Voorbeeld

Als de gebruiker de Escape-toets indrukt, wordt er een tekst getoond:

<input type="text" onkeydown="myFunction(event)"> 
function myFunction(event) {
  var x = event.which || event.keyCode; // event.keyCode wordt gebruikt in IE8 en oudere versies
  if (x == 27) {  // 27 is de ESC-toets
    alert("Je hebt de Escape-toets ingedrukt!");
  }
}

Probeer het zelf uit

Voorbeeld

De Unicode-waarde omzetten naar een teken (niet geschikt voor functietoetsen):

var x = event.which || event.keyCode;   // De Unicode-waarde ophalen
var y = String.fromCharCode(x);         // De waarde omzetten naar een teken

Probeer het zelf uit

Gerelateerde pagina's

HTML DOM Referentiehandleiding:KeyboardEvent key property

HTML DOM Referentiehandleiding:KeyboardEvent keyCode property

HTML DOM Referentiehandleiding:KeyboardEvent charCode property