Utilia

Код на клавиш (JavaScript keycode)

Натиснете клавиш и вижте JavaScript стойностите event.key, event.code, keyCode, which и location, с модификатори, история и пълна таблица с кодове.

Натиснете „Започни улавяне на клавиши“ или щракнете в полето по-долу, после натиснете произволен клавиш. Щракнете извън полето, за да върнете клавиатурата на страницата.

event.key Натиснете клавиш keyCode – Tab, стрелките и комбинациите също се улавят тук.
event.key
–
event.code
–
event.keyCode
–
event.which
–
event.location
–
event.repeat
–
Включени заключващи клавиши
–
Модификатори
ctrlKey shiftKey altKey metaKey
История на клавишите (най-новите първи)
История на клавишите (най-новите първи)
СъбитиеkeycodekeyCodelocationМодификаториrepeat
Справка за кодовете на клавишите (US QWERTY)

Справка за кодовете на клавишите (US QWERTY)
keycodekeyCodelocationБележка

Стойностите на key са за US подредба без модификатори; други подредби дават други знаци за същия code. keyCode и which са отпаднали от стандарта, но все още се използват широко.

Как да намерите кода на клавиш

  1. Натиснете Започни улавяне на клавиши или щракнете в голямото поле. Цветна рамка показва, че полето слуша.
  2. Натиснете произволен клавиш или комбинация. Големият дисплей показва стойността на key и остарелия keyCode, а картите отдолу изброяват event.key, event.code, event.keyCode, event.which, event.location, event.repeat и Включени заключващи клавиши (Caps Lock, Num Lock, AltGraph).
  3. Значките Модификатори светват за ctrlKey, shiftKey, altKey и metaKey.
  4. Копирайте JavaScript код за този клавиш. С Сравнявай по избирате между event.key, event.code или event.keyCode (legacy).
  5. Разгледайте История на клавишите (най-новите първи), за да сравните няколко натискания. Отметнете Записвай и събитията keyup, за да виждате и отпускането.
  6. Разгледайте или филтрирайте таблицата Справка за кодовете на клавишите (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, за да ги пропускате, например за да задействате комбинация само веднъж.

Записва ли се или изпраща ли се нещо от въведеното?

Не. Събитията на клавишите се четат от тази страница във вашия браузър и никога не се изпращат никъде. Историята изчезва, когато презаредите или напуснете страницата.