KeyboardEvent keyCode 属性
定义和用法
keyCode 属性返回触发 onkeypress Event 的按键的 Unicode 字符代码,或触发 onkeydown of onkeyup Event 的按键的 Unicode 按键代码。
两种代码类型的区别:
- 字符代码 - 代表 ASCII 字符的数字
- Toetsencodes - vertegenwoordigen het numerieke getal van de daadwerkelijke toets op het toetsenbord
Deze typen betekenen niet altijd hetzelfde. Bijvoorbeeld, de toetsenkode van kleine letter "w" en hoofdletter "W" is hetzelfde, omdat de ingedrukte toets hetzelfde is ("W" = getal "87"), maar de karakterscode is verschillend, omdat het resulterende karakter verschillend is ("w" of "W", dat wil zeggen "119" of "87"). - Bekijk de volgende voorbeelden voor een beter begrip.
Tip:Als je wilt weten of de gebruiker een afdrukbare toets heeft ingedrukt (bijvoorbeeld "a" of "5"), raad je 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 de onkeydown of onkeyup evenementen.
Opmerking:In Firefox werkt de keyCode-eigenschap niet voor het onkeypress-evenement (het retourneert enkel 0). Voor een cross-browser oplossing, gebruik dan which eigenschapGebruik samen met keyCode, bijvoorbeeld:
var x = event.which || event.keyCode; // Gebruik which of keyCode afhankelijk van de browserondersteuning
Tip:Voor een lijst van alle Unicode-caractères, raadpleeg onze Volledige Unicode referentie.
Tip:Als je een Unicode-waarde wilt omzetten naar een karakter, gebruik dan fromCharCode() methode.
Opmerking:Deze eigenschap is alleen leesbaar.
Opmerking:De keyCode- en which-eigenschappen worden enkel geleverd voor compatibiliteit. De nieuwste versie van de DOM-evenementen规范 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 toetsenbordgebeurtenis, gebruik dan altKeyenctrlKey/enmetaKey of shiftKey Eigenschappen.
Voorbeeld
Voorbeeld 1
Verkrijg de Unicode-waarde van de ingedrukte toets:
var x = event.keyCode;
Voorbeeld 2
Gebruik onkeypress en onkeydown om het verschil tussen karakterscodes en toetsenbordcodes te demonstreren:
<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)"> function uniCharCode(event) { var char = event.which || event.keyCode; document.getElementById("demo").innerHTML = "Unicode CHARACTER code: " + char; } function uniKeyCode(event) { var key = event.keyCode; document.getElementById("demo2").innerHTML = "Unicode KEY code: " + key; }
Druk op de "a"-toets op het toetsenbord (zonder Capslock) als char en key het volgende resultaat zullen zijn:
Unicode CHARACTER code: 97 Unicode KEY code: 65
Voorbeeld 3
Als de gebruiker de Escape-toets indrukt, wordt er een tekst getoond:
<input type="text" onkeydown="myFunction(event)"> function myFunction(event) { var x = event.keyCode; if (x == 27) { // 27 is de ESC-toets alert("Je hebt de Escape-toets ingedrukt!"); } }
Voorbeeld 4
Unicode-waarde omzetten naar karakter (niet geschikt voor functietoetsen):
var x = event.keyCode; // Unicode-waarde ophalen var y = String.fromCharCode(x); // Waarde omzetten naar karakter
Syntax
event.keyCode
Technische details
Retourwaarde: | Numerieke waarde die de Unicode-karaktercode of Unicode-toetscode vertegenwoordigt. |
---|---|
DOM Versie: | DOM Level 2 Events |
Browserondersteuning
Eigenschappen | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
keyCode | Ondersteuning | Ondersteuning | Ondersteuning | Ondersteuning | Ondersteuning |
Gerelateerde pagina's
HTML DOM Referentiehandleiding:KeyboardEvent key Property
HTML DOM Referentiehandleiding:KeyboardEvent charCode Property
HTML DOM Referentiehandleiding:KeyboardEvent which Property