KeyboardEvent , którego właściwości
Przykład
Uzyskaj wartość Unicode naciśniętego klawisza klawiatury:
var x = event.which;
Więcej przykładów „Wypróbuj sam” poniżej.
Definicja i użycie
Właściwość which zwraca kod znaku Unicode klawisza, który wyzwolił zdarzenie onkeypress , lub kod klawisza Unicode klawisza, który wyzwolił zdarzenie onkeydown lub onkeyup .
Różnica między dwoma typami kodu:
- Kody znaków — liczba reprezentująca znak ASCII
- Kody klawiszy — liczba reprezentująca rzeczywisty klawisz na klawiaturze
Te typy nie zawsze oznaczają to samo; na przykład małe „w” i duże „W” mają ten sam kod klawiatury, ponieważ klawisz, który jest naciśnięty na klawiaturze jest ten sam (tylko „W” = liczba „87”), ale inny kod znaku, ponieważ wynikowy znak jest inny (albo „w” lub „W”, czyli „119” lub „87”) — zobacz „Więcej przykładów” poniżej, aby lepiej go zrozumieć.
Wskazówka: Aby dowiedzieć się, czy użytkownik naciska klawisz drukowalny (np. „a” lub „5”), zaleca się użycie tej właściwości w zdarzeniu onkeypress. Aby dowiedzieć się, czy użytkownik naciska klawisz funkcyjny (np. „F1”, „CAPS LOCK” lub „Home”), użyj zdarzenia onkeydown lub onkeyup.
Uwaga: ta właściwość nie jest obsługiwana w IE8 i wcześniejszych. W przypadku tych wersji przeglądarki można użyć właściwości keyCode . Jednak właściwość keyCode nie działa w przypadku zdarzenia onkeypress w przeglądarce Firefox. W przypadku rozwiązania dla wielu przeglądarek możesz użyć następującego kodu:
var x = event.which || event.keyCode; // Use either which or keyCode, depending on browser support
Wskazówka: Aby uzyskać listę wszystkich znaków Unicode, zapoznaj się z naszym Pełnym opisem Unicode .
Wskazówka: Jeśli chcesz przekonwertować zwróconą wartość Unicode na znak, użyj metody fromCharCode() .
Uwaga: ta właściwość jest tylko do odczytu.
Uwaga: Zarówno właściwość who, jak i keyCode są udostępniane tylko w celu zapewnienia zgodności. Najnowsza wersja specyfikacji DOM Events Specification zaleca używanie w zamian właściwości key (jeśli jest dostępna).
Wskazówka: jeśli chcesz dowiedzieć się, czy klawisz „ALT”, „CTRL”, „META” lub „SHIFT” został naciśnięty podczas wystąpienia zdarzenia klawisza, użyj właściwości altKey , ctrlKey , metaKey lub shiftKey .
Obsługa przeglądarki
Liczby w tabeli określają pierwszą wersję przeglądarki, która w pełni obsługuje tę właściwość.
Property | |||||
---|---|---|---|---|---|
which | Yes | 9.0 | Yes | Yes | Yes |
Składnia
event.which
Szczegóły techniczne
Wartość zwrotu: | Liczba reprezentująca kod znaku Unicode lub kod klucza Unicode |
---|---|
Wersja DOM: | Zdarzenia DOM Level 2 |
Więcej przykładów
Przykład
Używanie onkeypress i onkeydown do zademonstrowania 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 is used for IE8 and earlier
document.getElementById("demo").innerHTML = "Unicode CHARACTER code: " + char;
}
function uniKeyCode(event) {
var key = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
document.getElementById("demo2").innerHTML = "Unicode KEY code: " + key;
}
Po naciśnięciu klawisza "a" na klawiaturze (nie używając Caps Lock) wynikiem znaku i klawisza będzie:
Unicode CHARACTER code: 97
Unicode KEY code: 65
Przykład
Zaalarmuj tekst, jeśli użytkownik naciśnie klawisz Escape:
<input type="text" onkeydown="myFunction(event)">
function myFunction(event) {
var x = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
if (x == 27) { // 27 is the ESC key
alert ("You pressed the Escape key!");
}
}
Przykład
Konwertuj wartość Unicode na znak (nie działa dla klawiszy funkcyjnych):
var x = event.which || event.keyCode; // Get the Unicode value
var y = String.fromCharCode(x); // Convert the value into a character
Powiązane strony
Dokumentacja HTML DOM: Właściwość klawisza KeyboardEvent
Dokumentacja HTML DOM: KeyboardEvent keyCode Property
Dokumentacja HTML DOM: KeyboardEvent charCode Property