KeyboardEvent which-ominaisuus

Määritelmä ja käyttö

which-ominaisuus palauttaa onkeypress-tapahtuma näppäimen Unicode-merkkikoodi tai joka onkeydown tai onkeyup Tapahtuman näppäimen Unicode-näppäin��

Kahden koodityypin ero:

  • Merkki�� - edustaa ASCII-merkin numeroa
  • Näppäin�� - edustaa näppäimistön todellisen näppäimen numeroa

Nämä tyypit eivät aina tarkoita samaa asiaa. Esimerkiksi pieni "w" ja ison "W" näppäin�� ovat samat, koska saman näppäimen on painettu ("W" = luku "87"), mutta merkki�� ovat eriä, koska tuloksena oleva merkki on eri ("w" tai "W", eli "119" tai "87") - katso alla olevat esimerkit, jotta voit ymmärtää tämän paremmin.

Vinkki:Jos haluat tietää, onko käyttäjä painanut tulostettavaa näppäintä (esim. "a" tai "5"), suositellaan käyttämään tätä ominaisuutta onkeypress-tapahtumassa. Jos haluat tietää, onko käyttäjä painanut toiminnallista näppäintä (esim. "F1", "CAPS LOCK" tai "Home"), käytä onkeydown- tai onkeyup-tapahtumaa.

Huomautus:IE8 ja aikaisemmat versiot eivät tue which-ominaisuutta. Näille selaimen versioille voit käyttää keyCode-ominaisuutta. Mutta keyCode-ominaisuus ei toimi Firefoxissa onkeypress-tapahtumassa. Yksittäiselle selaimelle ratkaisuun voit käyttää seuraavaa koodia:

var x = event.which || event.keyCode;  // Käytä whichia vai keyCodea riippuen selaimen tuesta

Vinkki:Kaikkien Unicode-merkkien luettelo löytyy Täydellinen Unicode-viite.

Vinkki:Jos haluat muuntaa Unicode-arvon merkiksi, käytä fromCharCode() -menetelmä.

Huomautus:Tämä ominaisuus on luettavissa.

Huomautus:keyCode- ja which-ominaisuudet tarjotaan yhteensopivuuden vuoksi. Uusimmat DOM-tapahtumastandardit suosittelevat käyttämään key-ominaisuutta (jos saatavilla).

Vinkki:Jos haluat tietää, onko "ALT", "CTRL", "META" tai "SHIFT"-näppäin painettu tapahtuessaan näppäimistö tapahtuma, käytä altKeyjactrlKeyjametaKey tai shiftKey ominaisuus.

Esimerkki

Hanki painetun näppäimen Unicode-arvo:

var x = event.which;

Sivun alhaalla on lisää TIY-esimerkkejä.

Kokeile itse

Syntaksi

event.which

Tekninen yksityiskohta

Palautusarvo: Numerovaranto, joka edustaa Unicode-merkkikoodia tai Unicode-näppäimistökoodia.
DOM-versio: DOM Level 2 Events

Selaimen tuki

Taulukossa olevat numerot osoittavat ensimmäisen selaimen version, joka tukee kyseistä ominaisuutta täysin.

Ominaisuus Chrome IE Firefox Safari Opera
which Tukee 9.0 Tukee Tukee Tukee

Lisää esimerkkejä

Esimerkki

Käytä onkeypress ja onkeydown -ominaisuuksia osoittaaksesi eroja merkkikoodien ja näppäimistökoodien välillä:

<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)"> 
function uniCharCode(event) {
  var char = event.which || event.keyCode; // event.keyCode käytetään IE8 ja aikaisemmissa versioissa
  document.getElementById("demo").innerHTML = "Unicode CHARACTER code: " + char;
}
function uniKeyCode(event) {
  var key = event.which || event.keyCode; // event.keyCode käytetään IE8 ja aikaisemmissa versioissa
  document.getElementById("demo2").innerHTML = "Unicode KEY code: " + key;
}

Paina näppäimistön "a"-näppäintä (ei käytä Capslockia) ja char ja key tuloksena ovat:

Unicode CHARACTER code: 97
Unicode KEY code: 65

Kokeile itse

Esimerkki

Jos käyttäjä painaa Escape-näppäintä, näytä jotain tekstiä:

<input type="text" onkeydown="myFunction(event)"> 
function myFunction(event) {
  var x = event.which || event.keyCode; // event.keyCode käytetään IE8 ja aikaisemmissa versioissa
  if (x == 27) {  // 27 on ESC-näppäin
    alert ("Painit Escape-näppäimen!");
  }
}

Kokeile itse

Esimerkki

Muunna Unicode-arvo merkiksi (ei sovellu toiminnallisille näppäimille):

var x = event.which || event.keyCode;   // Hae Unicode-arvo
var y = String.fromCharCode(x);         // Muunna arvo merkiksi

Kokeile itse

Liittyvät sivut

HTML DOM viittomakirja:KeyboardEvent key -ominaisuus

HTML DOM viittomakirja:KeyboardEvent keyCode -ominaisuus

HTML DOM viittomakirja:KeyboardEvent charCode -ominaisuus