När ett KeyboardEvent
avfyrar kan du testa vilken knapp som trycktes ned eftersom den händelsen innehåller information som du kan skriva logik mot.
document.addEventListener("keydown", function(event) ( console.log(event.which); ))
Till exempel, genom att trycka på “a” får du 65
. Tydligen är det bäst att skriva logik mot vilken keyCode och charCode är komplicerade:
Event.which egenskapen normaliserar event.keyCode och event.charCode. Det rekommenderas att du tittar på event.which för tangentbordsinmatning.
Och:
I en tangenttryckningshändelse lagras Unicode-värdet för den nedtryckta tangenten i antingen keyCode- eller charCode-egenskapen, aldrig båda. Om tangenten som trycks ned genererar ett tecken (t.ex. 'a'), ställs charCode till koden för det tecknet, med hänsyn till bokstäverna. (dvs charCode tar hänsyn till om shift-tangenten hålls nere). Annars lagras koden för den tryckta knappen i keyCode.
Testverktyg
Se Pen event.keyCode-testaren av Chris Coyier (@chriscoyier) på CodePen.
Nyckelkodvärden
Här är en tabell som innehåller värdena från event.which
.
|
|
|
Zell Liew märkte att tre av dessa nyckelkoder var annorlunda i Firefox än resten av webbläsarna
;
är 59 i Firefox men 186 i andra webbläsare.=
är 61 i Firefox men 187 i andra webbläsare.-
är 173 i Firefox men 189 i andra webbläsare.
Viktig anmärkning: Dessa nyckelkodvärden är endast giltiga under in keydown
och keyup
händelser. På Mac ger keypress
händelser dig en helt annan uppsättning koder.
Till exempel:
Nyckel | event.which i keydown | event.which i tangenttryckning |
a | 65 | 97 |
b | 66 | 98 |
c | 67 | 99 |