Klavišų kodų ieškiklis
Paspausk bet kurį klavišą ir pamatyk jo JavaScript event.key, event.code, keyCode, which bei location reikšmes, modifikatorius, istoriją ir pilną lentelę.
Spustelėk „Pradėti klavišų fiksavimą“ arba langelį žemiau, tada paspausk bet kurį klavišą. Spustelėk už langelio ribų, kad klaviatūra vėl priklausytų puslapiui.
- event.key
- –
- event.code
- –
- event.keyCode
- –
- event.which
- –
- event.location
- –
- event.repeat
- –
- Įjungti užraktai
- –
| Įvykis | key | code | keyCode | location | Modifikatoriai | repeat |
|---|
| key | code | keyCode | location | Pastaba |
|---|
key reikšmės pateiktos JAV klaviatūros išdėstymui be modifikatorių; kiti išdėstymai to paties code klavišui duoda kitus simbolius. keyCode ir which yra pasenę, bet vis dar plačiai naudojami.
Kaip rasti klavišo kodą
- Spustelėk Pradėti klavišų fiksavimą arba didįjį langelį. Spalvotas rėmelis rodo, kad klausoma.
- Paspausk bet kurį klavišą ar spartųjį klavišą. Dideliame ekrane rodoma
keyreikšmė ir senaskeyCode, o žemiau esančiose kortelėse išvardytievent.key,event.code,event.keyCode,event.which,event.location,event.repeatir Įjungti užraktai (Caps Lock, Num Lock, AltGraph). - Modifikatoriai ženkleliai įsižiebia pagal
ctrlKey,shiftKey,altKeyirmetaKey. - Nukopijuok JavaScript kodas šiam klavišui. Per Lyginti pagal pasirink
event.key,event.codearbaevent.keyCode (legacy). - Peržiūrėk Klavišų istorija (naujausi viršuje), kad palygintum kelis paspaudimus. Pažymėk Registruoti ir keyup įvykius, jei nori matyti ir atleidimus.
- Kai reikia reikšmės nespaudžiant klavišo, naršyk arba filtruok Klavišų kodų lentelė (US QWERTY).
Kol langelis aktyvus, kiekvieno klavišo numatytasis veiksmas blokuojamas, todėl Tab, rodyklės, Backspace ar Ctrl+S yra užfiksuojami, o ne perkelia fokusą ar atidaro dialogo langą. Spustelėk bet kur už langelio ribų, kad klaviatūra vėl priklausytų puslapiui. Kai kuriuos sparčiuosius klavišus operacinė sistema apdoroja anksčiau, nei juos pamato naršyklė (Alt+Tab, Ctrl+Alt+Del, Cmd+Tab, dažnai Print Screen), todėl jų joks tinklalapis perskaityti negali.
key, code ar keyCode: kurį naudoti?
KeyboardEvent turi kelias reikšmes, kurios atsako į skirtingus klausimus:
| Savybė | Ką ji parodo | Pavyzdys (klavišas A AZERTY klaviatūroje) |
|---|---|---|
key |
Sukurtas simbolis arba pavadinimas po išdėstymo ir modifikatorių | "a", su Shift "A" |
code |
Fizinė klavišo padėtis, nepriklausoma nuo išdėstymo | "KeyQ" |
keyCode / which |
Senas skaičius, dažniausiai didžiosios raidės ASCII kodas | 65 |
location |
0 standartinis, 1 kairysis, 2 dešinysis, 3 skaičių klaviatūra | 0 |
Naudok key, kai svarbi prasmė: Enter formai pateikti, Escape uždaryti, „?“ pagalbos skydeliui atidaryti. Naudok code žaidimams ir spartiesiems klavišams, kurie priklauso nuo klavišų padėties, pavyzdžiui, WASD judėjimui, kuris prancūzų AZERTY ar vokiečių QWERTZ klaviatūroje turi likti toje pačioje vietoje. Naujame kode venk keyCode ir which: jie pasenę, jų reikšmės skirtingose naršyklėse skiriasi skyrybos ženklams (kabliataškiui Firefox siunčia 59, o Chrome – 186), be to, jie neskiria kairiojo ir dešiniojo Shift ar dviejų Enter klavišų. Vis dėlto juos verta žinoti prižiūrint senesnį kodą, todėl šis įrankis juos rodo.
Apie kodo fragmentą
Sugeneruotas klausytojas atitinka tiksliai tą klavišą, kurį paspaudei, įskaitant Ctrl, Alt ir Meta. Spausdinamiems simboliams, lyginamiems pagal key, Shift praleidžiamas, nes jis jau įtrauktas į reikšmę: Shift+1 JAV išdėstyme duoda "!". Kai modifikatorių paspaudi vieną, fragmente jo žymė nekartojama. Atmink, kad metaKey yra Cmd klavišas Mac kompiuteryje ir Windows klavišas kompiuteryje su Windows, todėl tarpplatformiai spartieji klavišai dažniausiai tikrina event.ctrlKey || event.metaKey.
Dažnai užduodami klausimai
Kodėl keyCode skirtingiems simboliams rodo tą patį skaičių?
keyCode nurodo klavišą, o ne simbolį. Skaitmuo 1 ir „!“ turi bendrą 49, o „a“ ir „A“ – 65. Tikrą simbolį gausi perskaitęs key.
Kodėl mano AZERTY klavišas rodomas kaip KeyQ?
code klavišus įvardija pagal jų padėtį JAV QWERTY klaviatūroje. Prancūziškos klaviatūros klavišas su raide A yra ten, kur JAV klaviatūroje yra Q, todėl jo code yra KeyQ, o key – „a“.
Ką reiškia „Dead“ event.key reikšmėje?
Tai negyvasis klavišas, pavyzdžiui, ^ ar ¨ prancūziškoje klaviatūroje, kuris laukia kito klavišo, kad sudarytų raidę su diakritiniu ženklu. Galutinį simbolį pateikia kitas klavišo įvykis arba teksto laukelio input įvykis.
Kodėl event.repeat rodo „taip“?
Laikai klavišą nuspaudęs, o operacinė sistema siunčia automatinius pakartojimus. Patikrink event.repeat, jei nori jų nepaisyti, pavyzdžiui, kad spartusis klavišas suveiktų tik vieną kartą.
Ar kas nors, ką renku, įrašoma ar siunčiama?
Ne. Klavišų įvykius skaito šis puslapis tavo naršyklėje ir niekur jų nesiunčia. Istorija dingsta, kai perkrauni ar palieki puslapį.
Susiję įrankiai
- Klaviatūros testas Nemokamas klaviatūros testas internete: pašviečia kiekvieną klavišą, rodo key, code ir location, skaičiuoja N-key rollover ir randa užstrigusius klavišus.
- Regex testuoklis Testuok JavaScript reguliariąsias išraiškas gyvai: paryškinti atitikmenys, fiksuojančios grupės, pakeitimas ir paprastas kiekvieno elemento paaiškinimas.
- JavaScript AST naršyklė Įklijuok JavaScript kodą ir naršyklėje peržiūrėk jo abstraktų sintaksės medį (ESTree, Acorn). Spustelėk mazgus ir eksportuok AST kaip JSON.