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.

Prova själv

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

Prova själv

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!");
  }
}

Prova själv

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

Prova själv

Relaterade sidor

HTML DOM-referenshandbok:KeyboardEvent key-attribut

HTML DOM-referenshandbok:KeyboardEvent keyCode-attribut

HTML DOM-referenshandbok:KeyboardEvent charCode-attribut