KeyboardTest.io

Podgląd zdarzeń klawiatury

Zdarzenia: 0
Zachowane ostatnie: 200
ZdarzeniekeycodekeyCodePoł.Modyf.Powt.Δ ms

Tu pojawiają się zdarzenia, najnowsze na górze.

Domyślne akcje

key, code i keyCode

3 właściwości

KeyboardEvent opisuje naciśnięcie na trzy sposoby. Na francuskiej klawiaturze AZERTY ten sam fizyczny klawisz daje inną wartość key, ten sam code i keyCode, który zmienia się z literą.

WłaściwośćCo podajeQWERTYAZERTY
keyZnak wpisywany w danym układzie albo nazwa klawisza (Enter, Shift)qa
codeFizyczny klawisz, niezależnie od układuKeyQKeyQ
keyCodeStara liczba, przestarzała, ale nadal wysyłana8165
Do skrótów według położenia (WASD) używaj code, a do tekstu i skrótów według litery używaj key.

location

4 wartości

Właściwość location mówi, po której stronie jest klawisz występujący w parze, albo że klawisz leży na bloku numerycznym.

0 · StandardowyWiększość klawiszy, które są na klawiaturze raz
1 · LewyLewy Shift, Ctrl, Alt i Meta
2 · PrawyPrawy Shift, Ctrl, Alt i Meta
3 · NumerycznyKlawisze bloku numerycznego, razem z Enterem

Metody wprowadzania i keyCode 229

IME

Gdy włączona jest chińska, japońska lub koreańska metoda wprowadzania, to ona pierwsza przejmuje klawisze. Strona widzi key „Process” i keyCode 229, a tekst przychodzi w zdarzeniach composition. Przykład wpisywania ni, aby uzyskać chińskie słowo:

  1. keydownkey „Process” · keyCode 229
  2. compositionstartMetoda wprowadzania zaczyna słowo
  3. compositionupdatedata n, potem ni
  4. keydownSpacja wybiera kandydata
  5. compositionenddata to wybrane słowo
  6. inputinputType insertCompositionText
Przed obsługą klawisza sprawdź isComposing, bo inaczej Enter, który wybiera słowo, wyśle też formularz.

Klawisze modyfikujące

getModifierState

Każde zdarzenie przekazuje modyfikatory trzymane w tej chwili. getModifierState() podaje też stan klawiszy blokady.

ShiftshiftKey
ControlctrlKey
AltaltKey
MetametaKey (Windows albo Command na Macu)
CapsLockStan blokady, a nie to, czy klawisz jest wciśnięty
NumLockStan blokady, na Macu często nieznany
AltGraphPrawy Alt w wielu europejskich układach, także w polskim
ScrollLockRzadki na obecnych klawiaturach

Najczęstsze pytania

Pytania: 8

Czym różni się event.key od event.code?

Znak czy fizyczny klawisz

key to to, co klawisz wpisuje w bieżącym układzie, np. a lub A. code to fizyczny klawisz, np. KeyA, i jest taki sam w każdym układzie. Ten podgląd zdarzeń pokazuje oba przy każdym naciśnięciu.

Dlaczego keyCode to 229?

Metoda wprowadzania

Klawisz obsługuje metoda wprowadzania (IME). key ma wartość „Process”, a tekst przychodzi później w zdarzeniach composition i input. Pisz w polu, aby je zobaczyć.

Czy keyCode jest przestarzały?

Tak

keyCode, which i charCode są przestarzałe, ale przeglądarki nadal je wysyłają. Nowy kod powinien czytać key lub code.

Dlaczego Fn nie pokazuje żadnego zdarzenia?

Nigdy nie jest wysyłany

Klawiatura obsługuje Fn sama i nie wysyła kodu klawisza, więc żadna strona go nie dostaje. Klawisz naciśnięty z Fn, np. F5 lub klawisz głośności, się pokazuje.

Dlaczego nie da się przechwycić Ctrl+W ani Ctrl+T?

Zatrzymuje je przeglądarka

Przeglądarka zostawia sobie niektóre skróty: zamknięcie karty, nową kartę, nowe okno. Blokowanie domyślnych akcji zatrzymuje większość innych klawiszy, np. Tab, F5 czy /, ale nie te.

Dlaczego trzymany klawisz wciąż wysyła keydown?

Autopowtarzanie

System powtarza trzymany klawisz. Każde powtórzenie to keydown z repeat true, a przy puszczeniu przychodzi jeden keyup.

Dlaczego na Macu brakuje niektórych keyup?

Wciśnięty Command

Gdy Command jest wciśnięty, przeglądarki w macOS nie wysyłają keyup dla innych klawiszy i nie przychodzi on też po puszczeniu Command. Test klawiatury Mac →

Czy moje naciśnięcia są gdzieś wysyłane?

Test ich nie wysyła

Zdarzenia są obsługiwane tylko w tej przeglądarce. Kod testu ich nie wysyła, a po zamknięciu strony znikają. Polityka prywatności →