Właściwość which wydarzenia KeyboardEvent
Definicja i użycie
which właściwość zwraca wywołujący Zdarzenie onkeypress znak klawisza Unicode, lub wywołujący onkeydown lub onkeyup Unicode kod klawisza wydarzenia klawisza
Różnica między dwoma typami kodów:
- Kod znaku - reprezentuje liczbowy kod ASCII znaku
- Kod klawisza - reprezentuje liczbowy klawisz rzeczywistego klawisza na klawiaturze
Te typy nie zawsze oznaczają to samo. Na przykład, mała "w" i duża "W" mają ten sam kod klawisza klawiatury, ponieważ naciśnięty klawisz jest ten sam ("W" = liczba "87"), ale różne kodu znaku, ponieważ resulting znak jest inny ("w" lub "W", tj. "119" lub "87") - proszę zobaczyć więcej przykładów, aby lepiej zrozumieć to.
Wskazówka:Aby sprawdzić, czy użytkownik nacisnął klawisz do druku (np. "a" lub "5"), zaleca się użycie tej właściwości w wydarzeniu onkeypress. Aby sprawdzić, czy użytkownik nacisnął klawisz funkcyjny (np. "F1", "CAPS LOCK" lub "Home"), użyj wydarzeń onkeydown lub onkeyup.
Komentarz:Wersje IE8 i wcześniejsze nie obsługują właściwości which. Dla tych wersji przeglądarki możesz użyć właściwości keyCode. Jednak właściwość keyCode nie działa dla zdarzenia onkeypress w Firefox. Aby uzyskać rozwiązanie przeglądarkowe, możesz użyć następującego kodu:
var x = event.which || event.keyCode; // Używaj which czy keyCode, w zależności od wsparcia przeglądarki
Wskazówka:Aby uzyskać listę wszystkich znaków Unicode, zapoznaj się z naszym Pełna referencja Unicode.
Wskazówka:Jeśli chcesz przekształcić wartość Unicode na znak, użyj Metoda fromCharCode().
Komentarz:Właściwość tylko do odczytu.
Komentarz:Dostarczenie właściwości keyCode i which jest tylko dla zgodności. Najnowsza wersja specyfikacji DOM events zaleca użycie właściwości key (jeśli dostępna).
Wskazówka:Jeśli chcesz wiedzieć, czy naciśnięto klawisz "ALT", "CTRL", "META" lub "SHIFT" podczas zdarzenia naciśnięcia klawisza, użyj altKey,ctrlKey,metaKey lub shiftKey Atrybuty.
Przykład
Pobierz wartość Unicode naciśniętego klawisza klawiatury:
var x = event.which;
Poniżej strony znajdują się więcej przykładów TIY.
Gramatyka
event.which
Szczegółowe informacje techniczne
Zwrócona wartość: | Wartości liczbowe, które reprezentują kod znaku Unicode lub kod klawisza klawiatury Unicode. |
---|---|
Wersja DOM: | DOM Level 2 Events |
Wsparcie przeglądarki
Liczby w tabeli wskazują pierwszą wersję przeglądarki, która w pełni obsługuje ten atrybut.
Atrybuty | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
which | Wspierane | 9.0 | Wspierane | Wspierane | Wspierane |
Więcej przykładów
Przykład
Używaj onkeypress i onkeydown, aby pokazać różnicę między kodami znaków a kodami klawiatury:
<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)"> function uniCharCode(event) { var char = event.which || event.keyCode; // event.keyCode używany w IE8 i wcześniejszych wersjach document.getElementById("demo").innerHTML = "Kod CHAR Unicode: " + char; } function uniKeyCode(event) { var key = event.which || event.keyCode; // event.keyCode używany w IE8 i wcześniejszych wersjach document.getElementById("demo2").innerHTML = "Kod KEY Unicode: " + key; }
Naciśnij klawisz "a" na klawiaturze (nie używając Capslock), wyniki char i key będą:
Kod CHAR Unicode: 97 Kod KEY Unicode: 65
Przykład
Jeśli użytkownik naciśnie klawisz Escape, wyświetl pewien tekst:
<input type="text" onkeydown="myFunction(event)"> function myFunction(event) { var x = event.which || event.keyCode; // event.keyCode używany w IE8 i wcześniejszych wersjach if (x == 27) { // 27 to klawisz ESC alert ("Naciśnięto klawisz Escape!"); } }
Przykład
Konwersja wartości Unicode na znak (nie dotyczy klawiszy funkcyjnych):
var x = event.which || event.keyCode; // Pobierz wartość Unicode var y = String.fromCharCode(x); // Konwersja wartości na znak
Strony związane
Przeglądarka HTML DOM:Atrybut key KeyboardEvent
Przeglądarka HTML DOM:Atrybut keyCode KeyboardEvent
Przeglądarka HTML DOM:Atrybut charCode KeyboardEvent