Код на клавиш (JavaScript keycode)
Натиснете клавиш и вижте JavaScript стойностите event.key, event.code, keyCode, which и location, с модификатори, история и пълна таблица с кодове.
Натиснете „Започни улавяне на клавиши“ или щракнете в полето по-долу, после натиснете произволен клавиш. Щракнете извън полето, за да върнете клавиатурата на страницата.
- event.key
- –
- event.code
- –
- event.keyCode
- –
- event.which
- –
- event.location
- –
- event.repeat
- –
- Включени заключващи клавиши
- –
| Събитие | key | code | keyCode | location | Модификатори | repeat |
|---|
| key | code | keyCode | location | Бележка |
|---|
Стойностите на key са за US подредба без модификатори; други подредби дават други знаци за същия code. keyCode и which са отпаднали от стандарта, но все още се използват широко.
Как да намерите кода на клавиш
- Натиснете Започни улавяне на клавиши или щракнете в голямото поле. Цветна рамка показва, че полето слуша.
- Натиснете произволен клавиш или комбинация. Големият дисплей показва стойността на
keyи остарелияkeyCode, а картите отдолу изброяватevent.key,event.code,event.keyCode,event.which,event.location,event.repeatи Включени заключващи клавиши (Caps Lock, Num Lock, AltGraph). - Значките Модификатори светват за
ctrlKey,shiftKey,altKeyиmetaKey. - Копирайте JavaScript код за този клавиш. С Сравнявай по избирате между
event.key,event.codeилиevent.keyCode (legacy). - Разгледайте История на клавишите (най-новите първи), за да сравните няколко натискания. Отметнете Записвай и събитията keyup, за да виждате и отпускането.
- Разгледайте или филтрирайте таблицата Справка за кодовете на клавишите (US QWERTY), когато ви трябва стойност, без да натискате клавиша.
Докато полето е на фокус, стандартното действие на всеки клавиш е блокирано, така че Tab, стрелките, Backspace или Ctrl+S се улавят, вместо да преместват фокуса или да отварят диалог. Щракнете извън полето, за да върнете клавиатурата на страницата. Някои комбинации се обработват от операционната система, преди браузърът да ги види (Alt+Tab, Ctrl+Alt+Del, Cmd+Tab, често Print Screen), така че никоя уеб страница не може да ги прочете.
key, code или keyCode: кое да използвате?
Едно KeyboardEvent носи няколко стойности, които отговарят на различни въпроси:
| Свойство | Какво ви казва | Пример (клавишът A на AZERTY) |
|---|---|---|
key |
Произведеният знак или именуван клавиш, след подредбата и модификаторите | "a", "A" със Shift |
code |
Физическото положение на клавиша, независимо от подредбата | "KeyQ" |
keyCode / which |
Остаряло число, обикновено ASCII кодът на главната буква | 65 |
location |
0 стандартен, 1 ляв, 2 десен, 3 цифрова клавиатура | 0 |
Използвайте key, когато значението има значение: Enter за изпращане, Escape за затваряне, „?“ за отваряне на помощен панел. Използвайте code за игри и комбинации, които зависят от положението на клавишите, например движение с WASD, което трябва да остане на същото място на френска AZERTY или немска QWERTZ клавиатура. Избягвайте keyCode и which в нов код: те са отпаднали от стандарта, стойностите им се различават между браузърите при пунктуацията (Firefox връща 59 за точката и запетая, където Chrome връща 186) и не могат да различат левия от десния Shift или двата Enter. Все пак е добре да ги знаете, когато поддържате по-стар код, затова инструментът ги показва.
За генерирания код
Генерираният слушател сравнява точно натиснатия клавиш, включително Ctrl, Alt и Meta. За печатни знаци, сравнявани по key, Shift се пропуска, защото вече е част от стойността: Shift+1 дава "!" в US подредба. Когато натиснете модификатор сам, кодът не повтаря неговия флаг. Не забравяйте, че metaKey е клавишът Cmd на Mac и клавишът Windows на PC, затова комбинациите за различни платформи обикновено проверяват event.ctrlKey || event.metaKey.
Често задавани въпроси
Защо keyCode показва едно и също число за различни знаци?
keyCode идентифицира клавиша, а не знака. Цифрата 1 и „!“ споделят 49, а „a“ и „A“ споделят 65. Прочетете key, за да получите истинския знак.
Защо клавишът ми от AZERTY се показва като KeyQ?
code именува клавишите по положението им в US QWERTY клавиатура. Клавишът с буква A на френска клавиатура е там, където е Q на US клавиатура, затова неговият code е KeyQ, а key е „a“.
Какво означава „Dead“ в event.key?
Това е мъртъв клавиш, като ^ или ¨ на френска клавиатура, който изчаква следващия клавиш, за да образува буква с диакритичен знак. Крайният знак се доставя от следващото събитие на клавиш или от събитието input на текстово поле.
Защо event.repeat показва „да“?
Държите клавиша натиснат и операционната система изпраща автоматични повторения. Проверявайте event.repeat, за да ги пропускате, например за да задействате комбинация само веднъж.
Записва ли се или изпраща ли се нещо от въведеното?
Не. Събитията на клавишите се четат от тази страница във вашия браузър и никога не се изпращат никъде. Историята изчезва, когато презаредите или напуснете страницата.
Сродни инструменти
- Тест на клавиатура Безплатен онлайн тест на клавиатура: светва всеки натиснат клавиш, показва стойностите key, code и location, отчита N-key rollover и открива залепнали клавиши.
- Тестер на регулярни изрази Тествайте JavaScript регулярни изрази на живо с откроени съвпадения, улавящи групи, замяна и обяснение на всеки елемент на шаблона на разбираем език.
- JavaScript AST Explorer Поставете JavaScript код и разгледайте абстрактното му синтактично дърво (ESTree, парсер Acorn) във вашия браузър. Експортирайте AST като JSON.