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.
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
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!"); } }
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
Gerelateerde pagina's
HTML DOM Referentiehandleiding:KeyboardEvent key property
HTML DOM Referentiehandleiding:KeyboardEvent keyCode property
HTML DOM Referentiehandleiding:KeyboardEvent charCode property