KeyboardEvent which-egenskab

Definition og brug

which-egenskaben returnerer udløse onkeypress begivenhed tastens Unicode-tegnkode, eller udløse onkeydown eller onkeyup Tastens Unicode-tastekode for begivenheden

Forskellen mellem de to kodeTyper:

  • Tegnkode - repræsenterer det numeriske ASCII-tegn
  • Tastekode - repræsenterer det numeriske tast på tastaturet

Disse typer betyder ikke altid det samme. For eksempel er tastekoden for lille "w" og stor "W" den samme, fordi tasten, der trykkes på, er den samme ("W" = tal "87"), men tegnkode er forskellig, fordi det resulterende tegn er forskelligt ("w" eller "W", dvs. "119" eller "87") - se nedenstående flere eksempler for at få en bedre forståelse.

Tips:Hvis du vil vide, om brugeren har trykket på en tast, der kan udskrives (f.eks. "a" eller "5"), anbefales det at bruge denne egenskab på onkeypress-tilsagn. For at finde ud af, om brugeren har trykket på en funktionstast (f.eks. "F1", "CAPS LOCK" eller "Home"), skal du bruge onkeydown- eller onkeyup-tilsagn.

Kommentar:IE8 og tidligere versjoner støtter ikke which-egenskapen. For disse nettleserversjonene kan du bruke keyCode-egenskapen. Men keyCode-egenskapen fungerer ikke for onkeypress-hendelse i Firefox. For en kryssebrowser-løsning kan du bruke følgende kode:

var x = event.which || event.keyCode;  // Bruk which eller keyCode avhengig av nettleserstøtte

Tips:For en liste over alle Unicode-tegn, se vår Full Unicode referanse.

Tips:Hvis du vil konvertere Unicode-verdien til et tegn, bruk fromCharCode() metoden.

Kommentar:Denne egenskapen er skrivebeskyttet.

Kommentar:keyCode- og which-egenskapene er kun tilgjengelige for kompatibilitet. Den nyeste versjonen av DOM hendelsesspesifikasjonen anbefaler å bruke key-egenskapen (hvis tilgjengelig).

Tips:Hvis du vil vide om "ALT", "CTRL", "META" eller "SHIFT"-tasten ble trykket når tastetrykket skjedde, bruk altKeyogctrlKeyogmetaKey eller shiftKey egenskap.

Eksempel

Få tak i Unicode-verdien til den trykte tasten:

var x = event.which;

Der er flere TIY-eksempler nedenfor på siden.

Prøv det selv

Syntaks

event.which

Teknisk detalj

Returverdi: Numeriske verdier som representerer Unicode tegnkode eller Unicode tastaturkode.
DOM versjon: DOM Level 2 Events

Nettleserstøtte

Tallene i tabellen angiver den første nettleserversjon som fullt ut støtter egenskapen.

Egenskab Chrome IE Firefox Safari Opera
which Supporteret 9.0 Supporteret Supporteret Supporteret

Flere eksempler

Eksempel

Brug af onkeypress og onkeydown til at demonstrere forskellen mellem tegnkode og tastaturkode:

<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)"> 
function uniCharCode(event) {
  var char = event.which || event.keyCode; // event.keyCode bruges i IE8 og tidligere versioner
  document.getElementById("demo").innerHTML = "Unicode CHARACTER code: " + char;
}
function uniKeyCode(event) {
  var key = event.which || event.keyCode; // event.keyCode bruges i IE8 og tidligere versioner
  document.getElementById("demo2").innerHTML = "Unicode KEY code: " + key;
}

Når du trykker på tasten "a" på tastaturet (uden at bruge Capslock), vil char og key-værdierne være:

Unicode CHARACTER code: 97
Unicode KEY code: 65

Prøv det selv

Eksempel

Vis nogle tekster, hvis brugeren trykker på Escape-tasten:

<input type="text" onkeydown="myFunction(event)"> 
function myFunction(event) {
  var x = event.which || event.keyCode; // event.keyCode bruges i IE8 og tidligere versioner
  if (x == 27) {  // 27 er ESC-tasten
    alert("Du trykkede Escape-tasten!");
  }
}

Prøv det selv

Eksempel

Konverter Unicode-værdien til et tegn (ikke anvendeligt for funktionstaster):

var x = event.which || event.keyCode;   // Få Unicode-værdien
var y = String.fromCharCode(x);         // Konverter værdien til et tegn

Prøv det selv

Relaterede sider

HTML DOM referencehåndbog:KeyboardEvent key egenskab

HTML DOM referencehåndbog:KeyboardEvent keyCode egenskab

HTML DOM referencehåndbog:KeyboardEvent charCode egenskab