KeyboardEvent which-attribut
Definition och användning
which-attributet returnerar utlösande onkeypress-händelse tangentens Unicode-teckenkod, eller utlöser onkeydown eller onkeyup Händelsens tangent Unicode-kod
Skillnaden mellan de två kodtyperna:
- Teckenkod - representerar det numeriska värdet för ASCII-tecknet
- Tangentkod - representerar det numeriska värdet för den faktiska tangenten på tangentbordet
Dessa typer betyder inte alltid samma sak. Till exempel är tangentkoden för smått "w" och stort "W" samma på tangentbordet ("W" = nummer "87"), men teckenkoden är annorlunda eftersom det resulterande tecknet är olika ("w" eller "W", dvs. "119" eller "87") - se fler exempel nedan för att få en bättre förståelse.
Tips:För att veta om användaren har tryckt på en utskrivbar tangent (t.ex. "a" eller "5"), rekommenderas att använda detta attribut på onkeypress-händelsen. För att veta om användaren har tryckt på en funktionstangent (t.ex. "F1", "CAPS LOCK" eller "Home"), använda onkeydown eller onkeyup-händelsen.
Kommentar:IE8 och tidigare versioner stöder inte which-egenskapen. För dessa versioner kan du använda keyCode-egenskapen. Men keyCode-egenskapen fungerar inte för onkeypress-event i Firefox. För en korsbläddringslösning kan du använda följande kod:
var x = event.which || event.keyCode; // Använd which eller keyCode beroende på webbläsarens stöd
Tips:För en lista över alla Unicode-tecken, se vår Komplett Unicode-referens.
Tips:Om du vill konvertera ett Unicode-värde till ett tecken, använd fromCharCode() metoden.
Kommentar:Egenskapen är skrivskyddad.
Kommentar:keyCode- och which-egenskaperna tillhandahålls bara för kompatibilitet. Den senaste versionen av DOM-eventstandarden rekommenderar att använda key-egenskapen (om tillgänglig).
Tips:Om du vill veta om "ALT", "CTRL", "META" eller "SHIFT"-tangenten trycktes ner vid tangentinmatningseventet, använd altKeyochctrlKeyochmetaKey eller shiftKey egenskaper.
Exempel
Fånga den Unicode-värde som tryckts på tangentbordet:
var x = event.which;
Mer TIY-exempel finns längre ner på sidan.
Syntax
event.which
Tekniska detaljer
Returvärde: | Numeriska värden som representerar Unicode-teckenkoder eller Unicode-tangentbordskoder. |
---|---|
DOM-version: | DOM Level 2 Events |
Webbläsarstöd
Numreringen i tabellen visar den första webbläsarens version som fullständigt stöder egenskapen.
Egenskaper | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
which | Stödjer | 9.0 | Stödjer | Stödjer | Stödjer |
Fler exempel
Exempel
Använd onkeypress och onkeydown för att visa skillnaden mellan teckenkoder och tangentbordskoder:
<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)"> function uniCharCode(event) { var char = event.which || event.keyCode; // event.keyCode används i IE8 och äldre versioner document.getElementById("demo").innerHTML = "Unicode CHARACTER code: " + char; } function uniKeyCode(event) { var key = event.which || event.keyCode; // event.keyCode används i IE8 och äldre versioner document.getElementById("demo2").innerHTML = "Unicode KEY code: " + key; }
Tryck på tangenten "a" på tangentbordet (utan att använda Capslock) när char och key-resultaten kommer att vara:
Unicode CHARACTER code: 97 Unicode KEY code: 65
Exempel
Om användaren trycker på Escape-tangenten, visas några texter:
<input type="text" onkeydown="myFunction(event)"> function myFunction(event) { var x = event.which || event.keyCode; // event.keyCode används i IE8 och äldre versioner if (x == 27) { // 27 är ESC-tangenten alert("Du tryckte på Escape-tangenten!"); } }
Exempel
Konvertera Unicode-värdet till ett tecken (inte för funktionstangenterna):
var x = event.which || event.keyCode; // Får Unicode-värdet var y = String.fromCharCode(x); // Konverterar värdet till ett tecken
Relaterade sidor
HTML DOM-referenshandbok:KeyboardEvent key-attribut
HTML DOM-referenshandbok:KeyboardEvent keyCode-attribut
HTML DOM-referenshandbok:KeyboardEvent charCode-attribut