KeyboardEvent: свойство keyCode
Устаревшее: Эта функция больше не рекомендуется. Хотя некоторые браузеры могут её всё ещё поддерживать, она может быть удалена из соответствующих веб-стандартов, может быть в процессе удаления или сохранена только для совместимости. Избегайте её использования и, если возможно, обновите существующий код; см. таблицу совместимости в конце этой страницы, чтобы принять решение. Помните, что эта функция может перестать работать в любое время.
Устаревшее KeyboardEvent.keyCode только для чтения свойство представляет собой зависящий от системы и реализации числовой код, идентифицирующий неизменённое значение нажатой клавиши.
Обычно это десятичный ASCII-код (RFC 20) или код Windows 1252, соответствующий клавише. Если клавишу нельзя идентифицировать, это значение равно 0.
Если возможно, следует избегать использования этого свойства; оно устарело уже некоторое время. Вместо этого следует использовать KeyboardEvent.code (для нажатой физической клавиши) или KeyboardEvent.key (для символа, отображаемого клавишей). Проверьте совместимость для любого свойства, если вы ориентируетесь на очень старые браузеры.
Примечание: Разработчики веб-приложений не должны использовать keyCode атрибут для печатаемых символов при обработке keydown и keyup событий. Как описано выше, keyCode атрибут не подходит для печатаемых символов, особенно тех, которые вводятся с нажатой клавишей Shift или Alt.
Значение keyCode
Печатаемые клавиши в стандартном расположении
Значение событий клавиш, вызванных нажатием или отпусканием печатаемых клавиш в стандартном расположении, несовместимо между браузерами.
IE просто отображает значение кода виртуальной клавиши как KeyboardEvent.keyCode.
Google Chrome, Chromium и Safari должны определять значение по входному символу. Если символ ввода может быть введён с помощью раскладки клавиатуры США, они используют значение keyCode на раскладке клавиатуры США.
Firefox получает значения keyCode от символов ASCII, которые можно ввести с помощью клавиши — даже с модификаторами Shift или с раскладкой клавиатуры, поддерживающей ASCII. Подробности см. в следующих правилах:
-
Если система Windows и код исходной клавиши указывает, что клавиша – a-z или 0-9, используйте соответствующий код клавиши.
-
Если система macOS и код исходной клавиши указывает, что клавиша – 0-9, используйте соответствующий код клавиши.
-
Если нажатая клавиша вводит символ ASCII буквенно-цифрового типа без модификаторов клавиш, используйте соответствующий код клавиши.
-
Если нажатая клавиша вводит символ ASCII буквенно-цифрового типа с модификатором клавиши Shift, используйте соответствующий код клавиши.
-
Если нажатая клавиша вводит другой символ ASCII без модификаторов, используйте соответствующий код клавиши.
-
Если нажатая клавиша вводит другой символ ASCII с модификатором клавиши Shift, используйте соответствующий код клавиши.
-
В противном случае, т.е. нажатая клавиша вводит символ Unicode:
-
Если раскладка клавиатуры поддерживает ASCII (т.е. может вводить буквы ASCII), используйте 0 или выполните вычисления по следующим дополнительным правилам.
-
В противном случае, т.е. раскладка клавиатуры не поддерживает ASCII, используйте раскладку клавиатуры, поддерживающую ASCII, установленную в среде с наивысшим приоритетом:
- Если нажатая клавиша на альтернативной раскладке вводит символ ASCII буквенно-цифрового типа, используйте соответствующий код клавиши.
- В противном случае, используйте 0 или выполните вычисления по следующим дополнительным правилам.
-
Gecko устанавливает значения keyCode для клавиш пунктуации, насколько это возможно (когда достигнуты пункты 7.1 или 7.2 в вышеприведенном списке), следуя этим правилам:
Предупреждение: Цель этих новых дополнительных правил заключается в том, чтобы пользователи, чьи раскладки клавиатуры сопоставляют символы Unicode с клавишами пунктуации в раскладке клавиатуры США, могли использовать веб-приложения, которые поддерживают Firefox только с раскладками клавиатуры, поддерживающими ASCII, или только с раскладкой клавиатуры США. В противном случае новые значения keyCode могут конфликтовать с другими клавишами. Например, если активной является русская раскладка, значение keyCode и для клавиши "Period", и для клавиши "Slash" равно 190 (KeyEvent.DOM_VK_PERIOD). Если вам нужно различать эти клавиши, но вы не хотите самостоятельно поддерживать все раскладки клавиатур мира, вы, вероятно, должны использовать KeyboardEvent.code.
-
Если выполняется macOS или Linux:
-
Если активная раскладка клавиатуры не поддерживает ASCII, а альтернативная раскладка поддерживает ASCII.
- Если альтернативная раскладка поддерживающая ASCII, генерирует символ ASCII с помощью только ненажатых клавиш, используйте
keyCodeдля символа. - Если альтернативная раскладка поддерживающая ASCII, генерирует символ ASCII с нажатым модификатором Shift, используйте
keyCodeдля сдвинутого символа. - В противном случае, используйте
keyCodeдля символа ASCII, генерируемого клавишей при активной раскладке клавиатуры США.
- Если альтернативная раскладка поддерживающая ASCII, генерирует символ ASCII с помощью только ненажатых клавиш, используйте
-
В противном случае, используйте
keyCodeдля символа ASCII, генерируемого клавишей при активной раскладке клавиатуры США.
-
-
Если выполняется на Windows:
- Используйте значение
keyCodeдля символа ASCII, генерируемого клавишей, которая отображается в том же коде виртуальной клавиши Windows при активной раскладке клавиатуры США.
- Используйте значение
KeyboardEvent.code | IE 11 | Google Chrome 34 | Chromium 34 | Safari 7 | Gecko 29 | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Windows | Windows | Mac (10.9) | Linux (Ubuntu 14.04) | Mac (10.9) | Windows | Mac (10.9) | Linux (Ubuntu 14.04) | |||||||||||||||||
| US | Японская | Греческая | US | Японская | Греческая | US | Японская | Греческая | US | Японская | Греческая | US | Японская | Греческая | US | Японская | Греческая | US | Японская | Греческая | US | Японская | Греческая | |
"Digit1" | 0x31 (49) | 0x31 (49) | 0x31 (49) | 0x31 (49) | 0x31 (49) | 0x31 (49) | 0x31 (49) | 0x31 (49) | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
"Digit2" | 0x32 (50) | 0x32 (50) | 0x32 (50) | 0x32 (50) | 0x32 (50) | 0x32 (50) | 0x32 (50) | 0x32 (50) | ||||||||||||||||
"Digit3" | 0x33 (51) | 0x33 (51) | 0x33 (51) | 0x33 (51) | 0x33 (51) | 0x33 (51) | 0x33 (51) | 0x33 (51) | ||||||||||||||||
"Digit4" | 0x34 (52) | 0x34 (52) | 0x34 (52) | 0x34 (52) | 0x34 (52) | 0x34 (52) | 0x34 (52) | 0x34 (52) | ||||||||||||||||
"Digit5" | 0x35 (53) | 0x35 (53) | 0x35 (53) | 0x35 (53) | 0x35 (53) | 0x35 (53) | 0x35 (53) | 0x35 (53) | ||||||||||||||||
"Digit6" | 0x36 (54) | 0x36 (54) | 0x36 (54) | 0x36 (54) | 0x36 (54) | 0x36 (54) | 0x36 (54) | 0x36 (54) | ||||||||||||||||
"Digit7" | 0x37 (55) | 0x37 (55) | 0x37 (55) | 0x37 (55) | 0x37 (55) | 0x37 (55) | 0x37 (55) | 0x37 (55) | ||||||||||||||||
"Digit8" | 0x38 (56) | 0x38 (56) | 0x38 (56) | 0x38 (56) | 0x38 (56) | 0x38 (56) | 0x38 (56) | 0x38 (56) | ||||||||||||||||
"Digit9" | 0x39 (57) | 0x39 (57) | 0x39 (57) | 0x39 (57) | 0x39 (57) | 0x39 (57) | 0x39 (57) | 0x39 (57) | ||||||||||||||||
"Digit0" | 0x30 (48) | 0x30 (48) | 0x30 (48) | 0x30 (48) | 0x30 (48) | 0x30 (48) | 0x30 (48) | 0x30 (48) | ||||||||||||||||
"KeyA" | 0x41 (65) | 0x41 (65) | 0x41 (65) | 0x41 (65) | 0x41 (65) | 0x41 (65) | 0x41 (65) | 0x41 (65) | ||||||||||||||||
"KeyB" | 0x42 (66) | 0x42 (66) | 0x42 (66) | 0x42 (66) | 0x42 (66) | 0x42 (66) | 0x42 (66) | 0x42 (66) | ||||||||||||||||
"KeyC" | 0x43 (67) | 0x43 (67) | 0x43 (67) | 0x43 (67) | 0x43 (67) | 0x43 (67) | 0x43 (67) | 0x43 (67) | ||||||||||||||||
"KeyD" | 0x44 (68) | 0x44 (68) | 0x44 (68) | 0x44 (68) | 0x44 (68) | 0x44 (68) | 0x44 (68) | 0x44 (68) | ||||||||||||||||
"KeyE" | 0x45 (69) | 0x45 (69) | 0x45 (69) | 0x45 (69) | 0x45 (69) | 0x45 (69) | 0x45 (69) | 0x45 (69) | ||||||||||||||||
"KeyF" | 0x46 (70) | 0x46 (70) | 0x46 (70) | 0x46 (70) | 0x46 (70) | 0x46 (70) | 0x46 (70) | 0x46 (70) | ||||||||||||||||
"KeyG" | 0x47 (71) | 0x47 (71) | 0x47 (71) | 0x47 (71) | 0x47 (71) | 0x47 (71) | 0x47 (71) | 0x47 (71) | ||||||||||||||||
"KeyH" | 0x48 (72) | 0x48 (72) | 0x48 (72) | 0x48 (72) | 0x48 (72) | 0x48 (72) | 0x48 (72) | 0x48 (72) | ||||||||||||||||
"KeyI" | 0x49 (73) | 0x49 (73) | 0x49 (73) | 0x49 (73) | 0x49 (73) | 0x49 (73) | 0x49 (73) | 0x49 (73) | ||||||||||||||||
"KeyJ" | 0x4A (74) | 0x4A (74) | 0x4A (74) | 0x4A (74) | 0x4A (74) | 0x4A (74) | 0x4A (74) | 0x4A (74) | ||||||||||||||||
"KeyK" | 0x4B (75) | 0x4B (75) | 0x4B (75) | 0x4B (75) | 0x4B (75) | 0x4B (75) | 0x4B (75) | 0x4B (75) | ||||||||||||||||
"KeyL" | 0x4C (76) | 0x4C (76) | 0x4C (76) | 0x4C (76) | 0x4C (76) | 0x4C (76) | 0x4C (76) | 0x4C (76) | ||||||||||||||||
"KeyM" | 0x4D (77) | 0x4D (77) | 0x4D (77) | 0x4D (77) | 0x4D (77) | 0x4D (77) | 0x4D (77) | 0x4D (77) | ||||||||||||||||
"KeyN" | 0x4E (78) | 0x4E (78) | 0x4E (78) | 0x4E (78) | 0x4E (78) | 0x4E (78) | 0x4E (78) | 0x4E (78) | ||||||||||||||||
"KeyO" | 0x4F (79) | 0x4F (79) | 0x4F (79) | 0x4F (79) | 0x4F (79) | 0x4F (79) | 0x4F (79) | 0x4F (79) | ||||||||||||||||
"KeyP" | 0x50 (80) | 0x50 (80) | 0x50 (80) | 0x50 (80) | 0x50 (80) | 0x50 (80) | 0x50 (80) | 0x50 (80) | ||||||||||||||||
"KeyQ" | 0x51 (81) | 0x51 (81) | 0x51 (81) | 0x51 (81) | 0xBA (186)⚠️ | 0x51 (81) | 0x51 (81) | 0xBA (186)⚠️ | 0x51 (81) | 0x51 (81) | 0xBA (186)⚠️ | 0x51 (81) | 0x51 (81) | 0x51 (81) | 0xBA (186)⚠️ | 0x51 (81) | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
"KeyR" | 0x52 (82) | 0x52 (82) | 0x52 (82) | 0x52 (82) | 0x52 (82) | 0x52 (82) | 0x52 (82) | 0x52 (82) | ||||||||||||||||
"KeyS" | 0x53 (83) | 0x53 (83) | 0x53 (83) | 0x53 (83) | 0x53 (83) | 0x53 (83) | 0x53 (83) | 0x53 (83) | ||||||||||||||||
"KeyT" | 0x54 (84) | 0x54 (84) | 0x54 (84) | 0x54 (84) | 0x54 (84) | 0x54 (84) | 0x54 (84) | 0x54 (84) | ||||||||||||||||
"KeyU" | 0x55 (85) | 0x55 (85) | 0x55 (85) | 0x55 (85) | 0x55 (85) | 0x55 (85) | 0x55 (85) | 0x55 (85) | ||||||||||||||||
"KeyV" | 0x56 (86) | 0x56 (86) | 0x56 (86) | 0x56 (86) | 0x56 (86) | 0x56 (86) | 0x56 (86) | 0x56 (86) | ||||||||||||||||
"KeyW" | 0x57 (87) | 0x57 (87) | 0x57 (87) | 0x57 (87) | 0x57 (87) | 0x57 (87) | 0x57 (87) | 0x57 (87) | ||||||||||||||||
"KeyX" | 0x58 (88) | 0x58 (88) | 0x58 (88) | 0x58 (88) | 0x58 (88) | 0x58 (88) | 0x58 (88) | 0x58 (88) | ||||||||||||||||
"KeyY" | 0x59 (89) | 0x59 (89) | 0x59 (89) | 0x59 (89) | 0x59 (89) | 0x59 (89) | 0x59 (89) | 0x59 (89) | ||||||||||||||||
"KeyZ" | 0x5A (90) | 0x5A (90) | 0x5A (90) | 0x5A (90) | 0x5A (90) | 0x5A (90) | 0x5A (90) | 0x5A (90) | ||||||||||||||||
KeyboardEvent.code | США | Японский | Греческий | США | Японский | Греческий | США | Японский | Греческий | США | Японский | Греческий | США | Японский | Греческий | США | Японский | Греческий | США | Японский | Греческий | США | Японский | Греческий |
| Windows | Windows | Mac (10.9) | Linux (Ubuntu 14.04) | Mac (10.9) | Windows | Mac (10.9) | Linux (Ubuntu 14.04) | |||||||||||||||||
| Internet Explorer 11 | Google Chrome 34 | Chromium 34 | Safari 7 | Gecko 29 | ||||||||||||||||||||
KeyboardEvent.code | IE 11 | Google Chrome 34 | Chromium 34 | Safari 7 | Gecko 29 | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Windows | Windows | Mac (10.9) | Linux (Ubuntu 14.04) | Mac (10.9) | Windows (10.9) | Mac (10.9) | Linux (Ubuntu 14.04) | |||||||||||||||||
| США | Японский | Греческий | США | Японский | Греческий | США | Японский | Греческий | США | Японский | Греческий | США | Японский | Греческий | США | Японский | Греческий | США | Японский | Греческий | США | Японский | Греческий | |
"Comma" | 0xBC (188) | 0xBC (188) | 0xBC (188) | 0xBC (188) | 0xBC (188) | 0xBC (188) | 0xBC (188) | 0xBC (188) | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
"Comma" with Shift
| ||||||||||||||||||||||||
"Period" | 0xBE (190) | 0xBE (190) | 0xBE (190) | 0xBE (190) | 0xBE (190) | 0xBE (190) | 0xBE (190) | 0xBE (190) | ||||||||||||||||
"Period" with Shift
| ||||||||||||||||||||||||
"Semicolon" | 0xBA (186) |
0xBB (187)⚠️ | 0xBA (186) | 0xBA (186) |
0xBB (187)⚠️ | 0xBA (186) | 0xBA (186) |
0xBA (186) [1] |
0xE5 (229)⚠️ [2] | 0xBA (186) | 0xBA (186) |
0xE5 (229)⚠️ [3] | 0xBA (186) |
0xBA (186) [1] |
0xE5 (229)⚠️ [2] | 0x3B (59) | 0x3B (59) |
0x00 (0)⚠️ | 0x3B (59) |
0x3B (59) [1] |
0x00 (0)⚠️ | 0x3B (59) | 0x3B (59) |
0x00 (0)⚠️ |
"Semicolon" with Shift
|
0xBB (187)⚠️ [1] |
0xBB (187)⚠️ |
0xBB (187)⚠️ [1] | |||||||||||||||||||||
"Quote" | 0xDE (222) |
0xBA (186)⚠️ | 0xDE (222) | 0xDE (222) |
0xBA (186)⚠️ | 0xDE (222) | 0xDE (222) |
0xBA (186)⚠️ [1] | 0xDE (222) | 0xDE (222) |
0xBA (186)⚠️ | 0xDE (222) | 0xDE (222) |
0xBA (186)⚠️ [1] | 0xDE (222) | 0xDE (222) |
0x3A (58)⚠️ | 0xDE (222) | 0xDE (222) |
0x3A (58)⚠️ [1] | 0xDE (222) | 0xDE (222) |
0x3A (58)⚠️ | 0xDE (222) |
"Quote" with Shift |
0xDE (222)⚠️ [1] |
0x38 (56)⚠️ |
0xDE (222)⚠️ [1] | |||||||||||||||||||||
"BracketLeft" | 0xDB (219) |
0xC0(192)⚠️ | 0xDB (219) | 0xDB (219) |
0xC0(192)⚠️ | 0xDB (219) | 0xDB (219) |
0xDB (219) [1] | 0xDB (219) | 0xDB (219) |
0x32 (50)⚠️ | 0xDB (219) | 0xDB (219) |
0xDB (219) [1] | 0xDB (219) | 0xDB (219) |
0x40 (64)⚠️ | 0xDB (219) | 0xDB (219) |
0x40 (64)⚠️ [1] | 0xDB (219) | 0xDB (219) |
0x40 (64)⚠️ | 0xDB (219) |
"BracketLeft" with Shift
|
0xC0 (192)⚠️ [1] |
0xC0 (192)⚠️ |
0xC0 (192)⚠️ [1] | |||||||||||||||||||||
"BracketRight" | 0xDD (221) |
0xDB (219)⚠️ | 0xDD (221) | 0xDD (221) |
0xDB (219)⚠️ | 0xDD (221) | 0xDD (221) |
0xDB (219)⚠️ [1] | 0xDD (221) | 0xDD (221) |
0xDB (219)⚠️ | 0xDD (221) | 0xDD (221) |
0xDB (219)⚠️ [1] | 0xDD (221) | 0xDD (221) |
0xDB (219)⚠️ | 0xDD (221) | 0xDD (221) |
0xDB (219)⚠️ [1] | 0xDD (221) | 0xDD (221) |
0xDB (219)⚠️ | 0xDD (221) |
"BracketRight" with Shift
| ||||||||||||||||||||||||
"Backquote" | 0xC0 (192) | ❌ N/A | 0xC0 (192) | 0xC0 (192) | ❌ N/A | 0xC0 (192) | 0xC0 (192) | 0xC0 (192) |
0xF4 (244)⚠️ | 0xC0 (192) | 0xC0 (192) | 0xC0 (192) | ❌ N/A | 0xC0 (192) | 0xC0 (192) | 0xC0 (192) | 0x00 (0) | 0xC0 (192) | ||||||
"Backquote" with Shift
| ||||||||||||||||||||||||
"Backslash" | 0xDC (220) |
0xDD (221)⚠️ | 0xDC (220) | 0xDC (220) |
0xDD (221)⚠️ | 0xDC (220) | 0xDC (220) | 0xDC (220) |
0xDD (221)⚠️ | 0xDC (220) | 0xDC (220) | 0xDC (220) |
0xDD (221)⚠️ | 0xDC (220) | 0xDC (220) | 0xDC (220) |
0xDD (221)⚠️ | 0xDC (220) | ||||||
"Backslash" with Shift
| ||||||||||||||||||||||||
"Minus" | 0xBD (189) | 0xBD (189) | 0xBD (189) |
0xBD (189) [1] | 0xBD (189) | 0xBD (189) | 0xBD (189) | 0xBD (189) | 0xBD (189) |
0xBD (189) [1] | 0xBD (189) | 0xAD (173) | 0xAD (173) |
0xAD (173)[1] | 0xAD (173) | 0xAD (173) | ||||||||
"Minus" with Shift
|
0xBB (187)⚠️ [1] |
0xBB (187)⚠️ | 0xBD (189) |
0xBB (187)⚠️ [1] | 0xBD (189) | |||||||||||||||||||
"Equal" | 0xBB (187) |
0xDE (222)⚠️ | 0xBB (187) | 0xBB (187) |
0xDE (222)⚠️ | 0xBB (187) | 0xBB (187) |
0xBB (187) [1] | 0xBB (187) | 0xBB (187) |
0x36 (54)⚠️ | 0xBB (187) | 0xBB (187) |
0xBB (187)[1] | 0xBB (187) | 0x3D (61) |
0xA0 (160)⚠️ | 0x3D (61) | 0x3D (61) |
0xA0 (160)⚠️ [1] | 0x3D (61) | 0x3D (61) |
0xA0 (160)⚠️ | 0x3D (61) |
"Equal" with Shift
|
0xC0 (192)⚠️ [1] |
0xC0 (192)⚠️ | 0xBB (187) |
0xC0 (192)⚠️ [1] | 0xBB (187) | |||||||||||||||||||
"IntlRo" | 0xC1 (193) |
0xE2 (226)⚠️ | 0xC1 (193) | 0xC1 (193) |
0xE2 (226)⚠️ | 0xC1 (193) | 0xBD (189) | 0xBD (189) |
0x00 (0)⚠️ | [4] |
0xDC (220)⚠️ | [4] | 0xBD (189) | 0xBD (189) |
0xE5 (229)⚠️ [5] | 0x00 (0) |
0xDC (220)⚠️ | 0x00 (0) | 0xA7 (167) | 0xA7 (167) | 0x00 (0) | 0x00 (0) |
0xDC (220)⚠️ | 0x00 (0) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
"IntlRo" с Shift
| ||||||||||||||||||||||||
"IntlYen" | 0xFF (255) |
0xDC (220)⚠️ | 0xFF (255) | 0xFF (255) |
0xDC (220)⚠️ | 0xFF (255) |
0x00 (0)⚠️ |
0x00 (0)⚠️ |
0x00 (0)⚠️ | [4] |
0xDC (220)⚠️ | [4] |
0x00 (0)⚠️ |
0x00 (0)⚠️ |
0xE5 (229)⚠️ [5] |
0x00 (0)⚠️ |
0xDC (220)⚠️ |
0x00 (0)⚠️ | 0xDC (220) | 0xDC (220) |
0x00 (0)⚠️ |
0x00 (0)⚠️ |
0xDC (220)⚠️ |
0x00 (0)⚠️ |
"IntlYen" с Shift
| 0xDC (220) | 0xDC (220) |
0xBD (189)⚠️ | 0xDC (220) | 0xDC (220) | |||||||||||||||||||
KeyboardEvent.code | US | Японский | Греческий | US | Японский | Греческий | US | Японский | Греческий | US | Японский | Греческий | US | Японский | Греческий | US | Японский | Греческий | US | Японский | Греческий | US | Японский | Греческий |
| Windows | Windows | Mac (10.9) | Linux (Ubuntu 14.04) | Mac (10.9) | Windows | Mac (10.9) | Linux (Ubuntu 14.04) | |||||||||||||||||
| Internet Explorer 11 | Google Chrome 34 | Chromium 34 | Safari 7 | Gecko 29 | ||||||||||||||||||||
[1] Значение вводится с японской клавиатуры. При использовании клавиатуры ANSI, значение keyCode и введённый символ выбираются из раскладки клавиатуры US.
[2] Ключ — это ключ ввода. Значение события keyup равно 0xBA (186).
[3] Ключ — это ключ ввода. Значение события keyup равно 0x10 (16).
[4] События нажатия клавиш не генерируются.
[5] Ключ недоступен в раскладке клавиатуры греческого языка (не вводит никакого символа). Значение события keyup равно 0x00 (0).
Непечатные клавиши (клавиши функций)
KeyboardEvent.code | IE 11 | Google Chrome 34 | Chromium 34 | Safari 7 | Gecko 29 | |||
|---|---|---|---|---|---|---|---|---|
| Windows | Windows | Mac (10.9) | Linux (Ubuntu 14.04) | Mac (10.9) | Windows | Mac (10.9) | Linux (Ubuntu 14.04) | |
"AltLeft" | 0x12 (18) | 0x12 (18) | 0x12 (18) | 0x12 (18) | 0x12 (18) | 0x12 (18) | 0x12 (18) | 0x12 (18) |
"AltRight" | 0x12 (18) | 0x12 (18) | 0x12 (18) | 0x12 (18) | 0x12 (18) | 0x12 (18) | 0x12 (18) | 0x12 (18) |
"AltRight" при этом это "AltGraph" | [1] | [1] | ❌Недоступно |
0xE1 (225)⚠️ | ❌ Недоступно | [1] | ❌ Недоступно |
0xE1 (225)⚠️ |
"CapsLock" |
0x14 (20) [2] |
0x14 (20) [2] | 0x14 (20) | 0x14 (20) | 0x14 (20) |
0x14 (20) [2] | 0x14 (20) |
0x14 (20) [3] |
"ControlLeft" | 0x11 (17) | 0x11 (17) | 0x11 (17) | 0x11 (17) | 0x11 (17) | 0x11 (17) | 0x11 (17) | 0x11 (17) |
"ControlRight" | 0x11 (17) | 0x11 (17) | 0x11 (17) | 0x11 (17) | 0x11 (17) | 0x11 (17) | 0x11 (17) | 0x11 (17) |
"MetaLeft" | 0x5B (91) | 0x5B (91) | 0x5B (91) | 0x5B (91) | 0x5B (91) | 0x5B (91) |
0xE0 (224)⚠️ | 0x5B (91) |
"MetaRight" | 0x5C (92) | 0x5C (92) |
0x5D (93)⚠️ | 0x5C (92) |
0x5D (93)⚠️ |
0x5B (91)⚠️ |
0xE0 (224)⚠️ |
0x5B (91)⚠️ |
"ShiftLeft" | 0x10 (16) | 0x10 (16) | 0x10 (16) | 0x10 (16) | 0x10 (16) | 0x10 (16) | 0x10 (16) | 0x10 (16) |
"ShiftRight" | 0x10 (16) | 0x10 (16) | 0x10 (16) | 0x10 (16) | 0x10 (16) | 0x10 (16) | 0x10 (16) | 0x10 (16) |
KeyboardEvent.code | Windows | Windows | Mac (10.9) | Linux (Ubuntu 14.04) | Mac (10.9) | Windows | Mac (10.9) | Linux (Ubuntu 14.04) |
| IE 11 | Google Chrome 34 | Chromium 34 | Safari 7 | Gecko 29 | ||||
[1] В Windows при нажатии клавиши AltGraph генерируются события нажатия как клавиши "ControlLeft", так и клавиши "AltRight".
[2] При активной раскладке японской клавиатуры нажатие клавиши CapsLock без нажатия Shift генерирует событие 0xF0 (240). Клавиша работает как клавиша Alphanumeric с меткой "英数".
[3] При активной раскладке японской клавиатуры нажатие клавиши "CapsLock" без нажатия Shift генерирует событие 0x00 (0). Клавиша работает как клавиша "Alphanumeric" с меткой "英数".
KeyboardEvent.code | IE 11 | Google Chrome 34 | Chromium 34 | Safari 7 | Gecko 29 | |||
|---|---|---|---|---|---|---|---|---|
| Windows | Windows | Mac (10.9) | Linux (Ubuntu 14.04) | Mac (10.9) | Windows | Mac (10.9) | Linux (Ubuntu 14.04) | |
"ContextMenu" | 0x5D (93) | 0x5D (93) |
0x00 (0)⚠️ [1] | 0x5D (93) |
0x00 (0)⚠️ [1] | 0x5D (93) | 0x5D (93) | 0x5D (93) |
"Enter" | 0x0D (13) | 0x0D (13) | 0x0D (13) | 0x0D (13) | 0x0D (13) | 0x0D (13) | 0x0D (13) | 0x0D (13) |
"Space" | 0x20 (32) | 0x20 (32) | 0x20 (32) | 0x20 (32) | 0x20 (32) | 0x20 (32) | 0x20 (32) | 0x20 (32) |
"Tab" | 0x09 (9) | 0x09 (9) | 0x09 (9) | 0x09 (9) | 0x09 (9) | 0x09 (9) | 0x09 (9) | 0x09 (9) |
"Delete" | 0x2E (46) | 0x2E (46) | 0x2E (46) | 0x2E (46) | 0x2E (46) | 0x2E (46) | 0x2E (46) | 0x2E (46) |
"End" | 0x23 (35) | 0x23 (35) | 0x23 (35) | 0x23 (35) | 0x23 (35) | 0x23 (35) | 0x23 (35) | 0x23 (35) |
"Help" | ❌ N/A | ❌ N/A |
0x2D (45)⚠️ [2] |
0x2F (47)⚠️ [3] |
0x2D (45)⚠️ [2] | ❌ N/A |
0x2D (45)⚠️ [2] |
0x06 (6)⚠️ [3] |
"Home" | 0x24 (36) | 0x24 (36) | 0x24 (36) | 0x24 (36) | 0x24 (36) | 0x24 (36) | 0x24 (36) | 0x24 (36) |
"Insert" | 0x2D (45) | 0x2D (45) | 0x2D (45) | 0x2D (45) | 0x2D (45) | 0x2D (45) | 0x2D (45) | 0x2D (45) |
"PageDown" | 0x22 (34) | 0x22 (34) | 0x22 (34) | 0x22 (34) | 0x22 (34) | 0x22 (34) | 0x22 (34) | 0x22 (34) |
"PageUp" | 0x21 (33) | 0x21 (33) | 0x21 (33) | 0x21 (33) | 0x21 (33) | 0x21 (33) | 0x21 (33) | 0x21 (33) |
"ArrowDown" | 0x28 (40) | 0x28 (40) | 0x28 (40) | 0x28 (40) | 0x28 (40) | 0x28 (40) | 0x28 (40) | 0x28 (40) |
"ArrowLeft" | 0x25 (37) | 0x25 (37) | 0x25 (37) | 0x25 (37) | 0x25 (37) | 0x25 (37) | 0x25 (37) | 0x25 (37) |
"ArrowRight" | 0x27 (39) | 0x27 (39) | 0x27 (39) | 0x27 (39) | 0x27 (39) | 0x27 (39) | 0x27 (39) | 0x27 (39) |
"ArrowUp" | 0x26 (38) | 0x26 (38) | 0x26 (38) | 0x26 (38) | 0x26 (38) | 0x26 (38) | 0x26 (38) | 0x26 (38) |
"Escape" | 0x1B (27) | 0x1B (27) | 0x1B (27) | 0x1B (27) | 0x1B (27) | 0x1B (27) | 0x1B (27) | 0x1B (27) |
"PrintScreen" |
0x2C (44) [4] |
0x2C (44) [4] |
0x7C (124)⚠️ [5] |
0x2A (42)⚠️ |
0x7C (124)⚠️ [5] |
0x2C (44) [4] | 0x2C (44) |
0x2A (42)⚠️ |
"ScrollLock" | 0x91 (145) | 0x91 (145) |
0x7D (125)⚠️ [5] | 0x91 (145) |
0x7D (125)⚠️ [5] | 0x91 (145) | 0x91 (145) | 0x91 (145) |
"Pause" |
0x13 (19) [6] |
0x13 (19) [6] |
0x7E (126)⚠️ [5] | 0x13 (19) |
0x7E (126)⚠️ [5] |
0x13 (19) [6] | 0x13 (19) | 0x13 (19) |
KeyboardEvent.code | Windows | Windows | Mac (10.9) | Linux (Ubuntu 14.04) | Mac (10.9) | Windows | Mac (10.9) | Linux (Ubuntu 14.04) |
| IE 11 | Google Chrome 34 | Chromium 34 | Safari 7 | Gecko 29 | ||||
[1] Событие keypress генерируется, и его keyCode и charCode 0x10 (16), но текст фактически не вводится в редактор.
[2] На Mac клавиша Help отображается как клавиша Insert на ПК. Эти keyCode значения совпадают со значениями keyCode клавиши Insert.
[3] Проверено на Fedora 20.
[4] Генерируется только событие keyup.
[5] Клавиши ПК PrintScreen, ScrollLock и Pause отображаются на Mac как F13, F14 и F15 соответственно. Chrome и Safari отображают те же keyCode значения, что и клавиши Mac.
[6] Клавиша Pause с Control генерирует 0x03 (3).
KeyboardEvent.code | IE 11 | Google Chrome 34 | Chromium 34 | Safari 7 | Gecko 29 | |||
|---|---|---|---|---|---|---|---|---|
| Windows | Windows | Mac (10.9) | Linux (Ubuntu 14.04) | Mac (10.9) | Windows | Mac (10.9) | Linux (Ubuntu 14.04) | |
"F1" | 0x70 (112) | 0x70 (112) | 0x70 (112) | 0x70 (112) | 0x70 (112) | 0x70 (112) | 0x70 (112) | 0x70 (112) |
"F2" | 0x71 (113) | 0x71 (113) | 0x71 (113) | 0x71 (113) | 0x71 (113) | 0x71 (113) | 0x71 (113) | 0x71 (113) |
"F3" | 0x72 (114) | 0x72 (114) | 0x72 (114) | 0x72 (114) | 0x72 (114) | 0x72 (114) | 0x72 (114) | 0x72 (114) |
"F4" | 0x73 (115) | 0x73 (115) | 0x73 (115) | 0x73 (115) | 0x73 (115) | 0x73 (115) | 0x73 (115) | 0x73 (115) |
"F5" | 0x74 (116) | 0x74 (116) | 0x74 (116) | 0x74 (116) | 0x74 (116) | 0x74 (116) | 0x74 (116) | 0x74 (116) |
"F6" | 0x75 (117) | 0x75 (117) | 0x75 (117) | 0x75 (117) | 0x75 (117) | 0x75 (117) | 0x75 (117) | 0x75 (117) |
"F7" | 0x76 (118) | 0x76 (118) | 0x76 (118) | 0x76 (118) | 0x76 (118) | 0x76 (118) | 0x76 (118) | 0x76 (118) |
"F8" | 0x77 (119) | 0x77 (119) | 0x77 (119) | 0x77 (119) | 0x77 (119) | 0x77 (119) | 0x77 (119) | 0x77 (119) |
"F9" | 0x78 (120) | 0x78 (120) | 0x78 (120) | 0x78 (120) | 0x78 (120) | 0x78 (120) | 0x78 (120) | 0x78 (120) |
"F10" | 0x79 (121) | 0x79 (121) | 0x79 (121) | 0x79 (121) | 0x79 (121) | 0x79 (121) | 0x79 (121) | 0x79 (121) |
"F11" | 0x7A (122) | 0x7A (122) | 0x7A (122) | 0x7A (122) | 0x7A (122) | 0x7A (122) | 0x7A (122) | 0x7A (122) |
"F12" | 0x7B (123) | 0x7B (123) | 0x7B (123) | 0x7B (123) | 0x7B (123) | 0x7B (123) | 0x7B (123) | 0x7B (123) |
"F13" | 0x7C (124) | 0x7C (124) | 0x7C (124) |
0x7C (124) [1] | 0x7C (124) | 0x7C (124) |
0x2C (44) ⚠️ [2] |
0x00 (0)⚠️ [3] |
"F14" | 0x7D (125) | 0x7D (125) | 0x7D (125) |
0x7D (125) [1] | 0x7D (125) | 0x7D (125) |
0x91 (145) ⚠️ [2] |
0x00 (0)⚠️ [3] |
"F15" | 0x7E (126) | 0x7E (126) | 0x7E (126) |
0x7E (126) [1] | 0x7E (126) | 0x7E (126) |
0x13 (19) ⚠️ [2] |
0x00 (0)⚠️ [3] |
"F16" | 0x7F (127) | 0x7F (127) | 0x7F (127) |
0x7F (127) [1] | 0x7F (127) | 0x7F (127) | 0x7F (127) |
0x00 (0)⚠️ [3] |
"F17" | 0x80 (128) | 0x80 (128) | 0x80 (128) |
0x80 (128) [1] | 0x80 (128) | 0x80 (128) | 0x80 (128) |
0x00 (0)⚠️ [3] |
"F18" | 0x81 (129) | 0x81 (129) | 0x81 (129) |
0x81 (129) [1] | 0x81 (129) | 0x81 (129) | 0x81 (129) |
0x00 (0)⚠️ [3] |
"F19" | 0x82 (130) | 0x82 (130) | 0x82 (130) | ❌ N/A [4] | 0x82 (130) | 0x82 (130) | 0x82 (130) |
0x00 (0)⚠️ [3] |
"F20" | 0x83 (131) | 0x83 (131) | 0x83 (131) | ❌ N/A [4] |
0xE5 (229)⚠️ [5] | 0x83 (131) |
0x00 (0)⚠️ | ❌ N/A [6] |
"F21" | 0x84 (132) | 0x84 (132) |
0x00 (0)⚠️ [7] | ❌ N/A [4] |
0x00 (0)⚠️ [7] | 0x84 (132) | ❌ N/A [8] | ❌ N/A [6] |
"F22" | 0x85 (133) | 0x85 (133) |
0x00 (0)⚠️ [7] | ❌ N/A [4] |
0x00 (0)⚠️ [7] | 0x85 (133) | ❌ N/A [8] | ❌ N/A [6] |
"F23" | 0x86 (134) | 0x86 (134) |
0x00 (0)⚠️ [7] | ❌ N/A [4] |
0x00 (0)⚠️ [7] | 0x86 (134) | ❌ N/A [8] | ❌ N/A [6] |
"F24" | 0x87 (135) | 0x87 (135) |
0x00 (0)⚠️ [7] | ❌ N/A [4] |
0x00 (0)⚠️ [7] | 0x87 (135) | ❌ N/A [8] |
0x00 (0)⚠️ [3] |
KeyboardEvent.code | Windows | Windows | Mac (10.9) | Linux (Ubuntu 14.04) | Mac (10.9) | Windows | Mac (10.9) | Linux (Ubuntu 14.04) |
| IE 11 | Google Chrome 34 | Chromium 34 | Safari 7 | Gecko 29 | ||||
[1] Тестировалось на Fedora 20.
[2] На ПК PrintScreen, ScrollLock и Pause сопоставлены с F13, F14 и F15 соответственно на Mac. Firefox устанавливает для них те же значения keyCode , что и для клавиш на ПК.
[3] Тестировалось на Fedora 20. Клавиши не вызывают GDK_Fxx keysyms. Если клавиши вызывают правильные keysyms, эти значения должны быть такими же, как в IE.
[4] Тестировалось на Fedora 20. Клавиши не вызывают событий DOM key в Chromium.
[5] Значение keyCode для события keyUp равно 0x83 (131).
[6] Тестировалось на Fedora 20. Клавиши не вызывают событий DOM key в Firefox.
[7] Срабатывает только событие keydown.
[8] В Firefox не генерируются события DOM key.
Клавиши NumPad
KeyboardEvent.code | IE 11 | Google Chrome 34 | Chromium 34 | Safari 7 | Gecko 29 | |||
|---|---|---|---|---|---|---|---|---|
| Windows | Windows | Mac (10.9) | Linux (Ubuntu 14.04) | Mac (10.9) | Windows | Mac (10.9) | Linux (Ubuntu 14.04) | |
"NumLock" | 0x90 (144) | 0x90 (144) |
0x0C (12)⚠️ [1] | 0x90 (144) |
0x0C (12)⚠️ [1] | 0x90 (144) |
0x0C (12)⚠️ [1] | 0x90 (144) |
"Numpad0" | 0x60 (96) | 0x60 (96) | 0x60 (96) | 0x60 (96) | 0x60 (96) | 0x60 (96) | 0x60 (96) | 0x60 (96) |
"Numpad1" | 0x61 (97) | 0x61 (97) | 0x61 (97) | 0x61 (97) | 0x61 (97) | 0x61 (97) | 0x61 (97) | 0x61 (97) |
"Numpad2" | 0x62 (98) | 0x62 (98) | 0x62 (98) | 0x62 (98) | 0x62 (98) | 0x62 (98) | 0x62 (98) | 0x62 (98) |
"Numpad3" | 0x63 (99) | 0x63 (99) | 0x63 (99) | 0x63 (99) | 0x63 (99) | 0x63 (99) | 0x63 (99) | 0x63 (99) |
"Numpad4" | 0x64 (100) | 0x64 (100) | 0x64 (100) | 0x64 (100) | 0x64 (100) | 0x64 (100) | 0x64 (100) | 0x64 (100) |
"Numpad5" | 0x65 (101) | 0x65 (101) | 0x65 (101) | 0x65 (101) | 0x65 (101) | 0x65 (101) | 0x65 (101) | 0x65 (101) |
"Numpad6" | 0x66 (102) | 0x66 (102) | 0x66 (102) | 0x66 (102) | 0x66 (102) | 0x66 (102) | 0x66 (102) | 0x66 (102) |
"Numpad7" | 0x67 (103) | 0x67 (103) | 0x67 (103) | 0x67 (103) | 0x67 (103) | 0x67 (103) | 0x67 (103) | 0x67 (103) |
"Numpad8" | 0x68 (104) | 0x68 (104) | 0x68 (104) | 0x68 (104) | 0x68 (104) | 0x68 (104) | 0x68 (104) | 0x68 (104) |
"Numpad9" | 0x69 (105) | 0x69 (105) | 0x69 (105) | 0x69 (105) | 0x69 (105) | 0x69 (105) | 0x69 (105) | 0x69 (105) |
"NumpadAdd" | 0x6B (107) | 0x6B (107) | 0x6B (107) | 0x6B (107) | 0x6B (107) | 0x6B (107) | 0x6B (107) | 0x6B (107) |
"NumpadComma" ввод ","
| 0xC2 (194) | 0xC2 (194) |
0xBC (188)⚠️ | ❌ Всегда вводит "."
|
0xBC (188)⚠️ | 0xC2 (194) |
0x6C (108)⚠️ | ❌ Всегда вводит "."
|
"NumpadComma" ввод "." или пустой строки | 0xC2 (194) | 0xC2 (194) |
0xBE (190)⚠️ |
0x6E (110)⚠️ |
0xBE (190)⚠️ | 0xC2 (194) |
0x6C (108)⚠️ |
0x6E (110)⚠️ |
"NumpadDecimal" ввод "." | 0x6E (110) | 0x6E (110) | 0x6E (110) | 0x6E (110) | 0x6E (110) | 0x6E (110) | 0x6E (110) | 0x6E (110) |
"NumpadDecimal" ввод "," | 0x6E (110) | 0x6E (110) | 0x6E (110) |
0x6C (108)⚠️ | 0x6E (110) | 0x6E (110) | 0x6E (110) |
0x6C (108)⚠️ |
"NumpadDivide" | 0x6F (111) | 0x6F (111) | 0x6F (111) | 0x6F (111) | 0x6F (111) | 0x6F (111) | 0x6F (111) | 0x6F (111) |
"NumpadEnter" | 0x0D (13) | 0x0D (13) | 0x0D (13) | 0x0D (13) | 0x0D (13) | 0x0D (13) | 0x0D (13) | 0x0D (13) |
"NumpadEqual" | 0x0C (12) | 0x0C (12) |
0xBB (187)⚠️ |
0xBB (187)⚠️ |
0xBB (187)⚠️ | 0x0C (12) |
0x3D (61)⚠️ |
0x3D (61)⚠️ |
"NumpadMultiply" | 0x6A (106) | 0x6A (106) | 0x6A (106) | 0x6A (106) | 0x6A (106) | 0x6A (106) | 0x6A (106) | 0x6A (106) |
"NumpadSubtract" | 0x6D (109) | 0x6D (109) | 0x6D (109) | 0x6D (109) | 0x6D (109) | 0x6D (109) | 0x6D (109) | 0x6D (109) |
KeyboardEvent.code | Windows | Windows | Mac (10.9) | Linux (Ubuntu 14.04) | Mac (10.9) | Windows | Mac (10.9) | Linux (Ubuntu 14.04) |
| IE 11 | Google Chrome 34 | Chromium 34 | Safari 7 | Gecko 29 | ||||
[1] Ключ "NumLock" работает как клавиша "Clear" на Mac.
KeyboardEvent.code | IE 11 | Google Chrome 34 | Chromium 34 | Gecko 29 | |
|---|---|---|---|---|---|
| Windows | Windows | Linux (Ubuntu 14.04) | Windows | Linux (Ubuntu 14.04) | |
"Numpad0" ("Insert") | 0x2D (45) | 0x2D (45) | 0x2D (45) | 0x2D (45) | 0x2D (45) |
"Numpad1" ("End") | 0x23 (35) | 0x23 (35) | 0x23 (35) | 0x23 (35) | 0x23 (35) |
"Numpad2" ("ArrowDown") | 0x28 (40) | 0x28 (40) | 0x28 (40) | 0x28 (40) | 0x28 (40) |
"Numpad3" ("PageDown") | 0x22 (34) | 0x22 (34) | 0x22 (34) | 0x22 (34) | 0x22 (34) |
"Numpad4" ("ArrowLeft") | 0x25 (37) | 0x25 (37) | 0x25 (37) | 0x25 (37) | 0x25 (37) |
"Numpad5" | 0x0C (12) | 0x0C (12) | 0x0C (12) | 0x0C (12) | 0x0C (12) |
"Numpad6" ("ArrowRight") | 0x27 (39) | 0x27 (39) | 0x27 (39) | 0x27 (39) | 0x27 (39) |
"Numpad7" ("Home") | 0x24 (36) | 0x24 (36) | 0x24 (36) | 0x24 (36) | 0x24 (36) |
"Numpad8" ("ArrowUp") | 0x26 (38) | 0x26 (38) | 0x26 (38) | 0x26 (38) | 0x26 (38) |
"Numpad9" ("PageUp") | 0x21 (33) | 0x21 (33) | 0x21 (33) | 0x21 (33) | 0x21 (33) |
"NumpadDecimal" ("Delete") | 0x2E (46) | 0x2E (46) | 0x2E (46) | 0x2E (46) | 0x2E (46) |
KeyboardEvent.code | Windows | Windows | Linux (Ubuntu 14.04) | Windows | Linux (Ubuntu 14.04) |
| IE 11 | Google Chrome 34 | Chromium 34 | Gecko 29 | ||
Примечание: Недавние версии Mac не имеют клавиши NumLock, а следовательно, и состояния. Вот почему состояние разблокировки недоступно.
Постоянные значения keyCode
Gecko определяет множество keyCode значений в KeyboardEvent для явного построения таблицы сопоставления. Эти значения полезны для разработчиков дополнений для Firefox, но не очень полезны на общедоступных веб-страницах.
| Константа | Значение | Описание |
|---|
DOM_VK_CANCEL | 0x03 (3) | Кнопка отмены. |
DOM_VK_HELP | 0x06 (6) | Кнопка справки. |
DOM_VK_BACK_SPACE | 0x08 (8) | Кнопка Backspace. |
DOM_VK_TAB | 0x09 (9) | Кнопка Tab. |
DOM_VK_CLEAR | 0x0C (12) | Кнопка "5" на дополнительной цифровой клавиатуре, когда NumLock включен. Или на Mac, клавиша Clear, которая расположена на клавише NumLock. |
DOM_VK_RETURN | 0x0D (13) | Кнопка Enter/Возврат на основной клавиатуре. |
DOM_VK_ENTER | 0x0E (14) | Зарезервированная, но не используется. Устаревшая (Убрана, см. ошибку Firefox 969247.) |
DOM_VK_SHIFT | 0x10 (16) | Кнопка Shift. |
DOM_VK_CONTROL | 0x11 (17) | Кнопка Ctrl. |
DOM_VK_ALT | 0x12 (18) | Кнопка Alt (Option на Mac). |
DOM_VK_PAUSE | 0x13 (19) | Кнопка Pause. |
DOM_VK_CAPS_LOCK | 0x14 (20) | Caps Lock. |
DOM_VK_KANA | 0x15 (21) | Поддержка этой кодовой клавиши в Linux была добавлена в Gecko 4.0. |
DOM_VK_HANGUL | 0x15 (21) | Поддержка этой кодовой клавиши в Linux была добавлена в Gecko 4.0. |
DOM_VK_EISU | 0x 16 (22) | Кнопка "英数" на японской клавиатуре Mac. |
DOM_VK_JUNJA | 0x17 (23) | Поддержка этой кодовой клавиши в Linux была добавлена в Gecko 4.0. |
DOM_VK_FINAL | 0x18 (24) | Поддержка этой кодовой клавиши в Linux была добавлена в Gecko 4.0. |
DOM_VK_HANJA | 0x19 (25) | Поддержка этой кодовой клавиши в Linux была добавлена в Gecko 4.0. |
DOM_VK_KANJI | 0x19 (25) | Поддержка этой кодовой клавиши в Linux была добавлена в Gecko 4.0. |
DOM_VK_ESCAPE | 0x1B (27) | Кнопка Esc. |
DOM_VK_CONVERT | 0x1C (28) | Поддержка этой кодовой клавиши в Linux была добавлена в Gecko 4.0. |
DOM_VK_NONCONVERT | 0x1D (29) | Поддержка этой кодовой клавиши в Linux была добавлена в Gecko 4.0. |
DOM_VK_ACCEPT | 0x1E (30) | Поддержка этой кодовой клавиши в Linux была добавлена в Gecko 4.0. |
DOM_VK_MODECHANGE | 0x1F (31) | Поддержка этой кодовой клавиши в Linux была добавлена в Gecko 4.0. |
DOM_VK_SPACE | 0x20 (32) | Пробел. |
DOM_VK_PAGE_UP | 0x21 (33) | Кнопка Page Up. |
DOM_VK_PAGE_DOWN | 0x22 (34) | Кнопка Page Down. |
DOM_VK_END | 0x23 (35) | Кнопка End. |
DOM_VK_HOME | 0x24 (36) | Кнопка Home. |
DOM_VK_LEFT | 0x25 (37) | Кнопка стрелка влево. |
DOM_VK_UP | 0x26 (38) | Кнопка стрелка вверх. |
DOM_VK_RIGHT | 0x27 (39) | Кнопка стрелка вправо. |
DOM_VK_DOWN | 0x28 (40) | Кнопка стрелка вниз. |
DOM_VK_SELECT | 0x29 (41) | Поддержка этой кодовой клавиши в Linux была добавлена в Gecko 4.0. |
DOM_VK_PRINT | 0x2A (42) | Поддержка этой кодовой клавиши в Linux была добавлена в Gecko 4.0. |
DOM_VK_EXECUTE | 0x2B (43) | Поддержка этой кодовой клавиши в Linux была добавлена в Gecko 4.0. |
DOM_VK_PRINTSCREEN | 0x2C (44) | Кнопка Print Screen. |
DOM_VK_INSERT | 0x2D (45) | Кнопка Ins(ert). |
DOM_VK_DELETE | 0x2E (46) | Кнопка Del(ete). |
DOM_VK_0 | 0x30 (48) | Кнопка "0" в стандартном расположении. |
DOM_VK_1 | 0x31 (49) | Кнопка "1" в стандартном расположении. |
DOM_VK_2 | 0x32 (50) | Кнопка "2" в стандартном расположении. |
DOM_VK_3 | 0x33 (51) | Кнопка "3" в стандартном расположении. |
DOM_VK_4 | 0x34 (52) | Кнопка "4" в стандартном расположении. |
DOM_VK_5 | 0x35 (53) | Кнопка "5" в стандартном расположении. |
DOM_VK_6 | 0x36 (54) | Кнопка "6" в стандартном расположении. |
DOM_VK_7 | 0x37 (55) | Кнопка "7" в стандартном расположении. |
DOM_VK_8 | 0x38 (56) | Кнопка "8" в стандартном расположении. |
DOM_VK_9 | 0x39 (57) | Кнопка "9" в стандартном расположении. |
DOM_VK_COLON | 0x3A (58) | Двоеточие (":") клавиша. |
DOM_VK_SEMICOLON | 0x3B (59) | Точка с запятой (";") клавиша. |
DOM_VK_LESS_THAN | 0x3C (60) | Меньше чем ("<") клавиша. |
DOM_VK_EQUALS | 0x3D (61) | Равно ("=") клавиша. |
DOM_VK_GREATER_THAN | 0x3E (62) | Больше чем (">") клавиша. |
DOM_VK_QUESTION_MARK | 0x3F (63) | Вопросительный знак ("?") клавиша. |
DOM_VK_AT | 0x40 (64) | Знак "@" клавиша. |
DOM_VK_A | 0x41 (65) | Кнопка "A". |
DOM_VK_B | 0x42 (66) | Кнопка "B". |
DOM_VK_C | 0x43 (67) | Кнопка "C". |
DOM_VK_D | 0x44 (68) | Кнопка "D". |
DOM_VK_E | 0x45 (69) | Кнопка "E". |
DOM_VK_F | 0x46 (70) | Кнопка "F". |
DOM_VK_G | 0x47 (71) | Кнопка "G". |
DOM_VK_H | 0x48 (72) | Кнопка "H". |
DOM_VK_I | 0x49 (73) | Кнопка "I". |
DOM_VK_J | 0x4A (74) | Кнопка "J". |
DOM_VK_K | 0x4B (75) | Кнопка "K". |
DOM_VK_L | 0x4C (76) | Кнопка "L". |
DOM_VK_M | 0x4D (77) | Кнопка "M". |
DOM_VK_N | 0x4E (78) | Кнопка "N". |
DOM_VK_O | 0x4F (79) | Кнопка "O". |
DOM_VK_P | 0x50 (80) | Кнопка "P". |
DOM_VK_Q | 0x51 (81) | Кнопка "Q". |
DOM_VK_R | 0x52 (82) | Кнопка "R". |
DOM_VK_S | 0x53 (83) | Кнопка "S". |
DOM_VK_T | 0x54 (84) | Кнопка "T". |
DOM_VK_U | 0x55 (85) | Кнопка "U". |
DOM_VK_V | 0x56 (86) | Кнопка "V". |
DOM_VK_W | 0x57 (87) | Кнопка "W". |
DOM_VK_X | 0x58 (88) | Кнопка "X". |
DOM_VK_Y | 0x59 (89) | Кнопка "Y". |
DOM_VK_Z | 0x5A (90) | Кнопка "Z". |
DOM_VK_WIN | 0x5B (91) | Кнопка логотипа Windows в Windows. Или клавиша Super или Hyper в Linux. |
DOM_VK_CONTEXT_MENU | 0x5D (93) | Кнопка открытия контекстного меню. |
DOM_VK_SLEEP | 0x5F (95) | Поддержка этой кодовой клавиши в Linux была добавлена в Gecko 4.0. |
DOM_VK_NUMPAD0 | 0x60 (96) | "0" на дополнительной цифровой клавиатуре. |
DOM_VK_NUMPAD1 | 0x61 (97) | "1" на дополнительной цифровой клавиатуре. |
DOM_VK_NUMPAD2 | 0x62 (98) | "2" на дополнительной цифровой клавиатуре. |
DOM_VK_NUMPAD3 | 0x63 (99) | "3" на дополнительной цифровой клавиатуре. |
DOM_VK_NUMPAD4 | 0x64 (100) | "4" на дополнительной цифровой клавиатуре. |
DOM_VK_NUMPAD5 | 0x65 (101) | "5" на дополнительной цифровой клавиатуре. |
DOM_VK_NUMPAD6 | 0x66 (102) | "6" на дополнительной цифровой клавиатуре. |
DOM_VK_NUMPAD7 | 0x67 (103) | "7" на дополнительной цифровой клавиатуре. |
DOM_VK_NUMPAD8 | 0x68 (104) | "8" на дополнительной цифровой клавиатуре. |
DOM_VK_NUMPAD9 | 0x69 (105) | "9" на дополнительной цифровой клавиатуре. |
DOM_VK_MULTIPLY | 0x6A (106) | "*" на дополнительной цифровой клавиатуре. |
DOM_VK_ADD | 0x6B (107) | "+" на дополнительной цифровой клавиатуре. |
DOM_VK_SEPARATOR | 0x6C (108) | |
DOM_VK_SUBTRACT | 0x6D (109) | "-" на дополнительной цифровой клавиатуре. |
DOM_VK_DECIMAL | 0x6E (110) | Десятичная точка на дополнительной цифровой клавиатуре. |
DOM_VK_DIVIDE | 0x6F (111) | "/" на дополнительной цифровой клавиатуре. |
DOM_VK_F1 | 0x70 (112) | Клавиша F1. |
DOM_VK_F2 | 0x71 (113) | Клавиша F2. |
DOM_VK_F3 | 0x72 (114) | Клавиша F3. |
DOM_VK_F4 | 0x73 (115) | Клавиша F4. |
DOM_VK_F5 | 0x74 (116) | Клавиша F5. |
DOM_VK_F6 | 0x75 (117) | Клавиша F6. |
DOM_VK_F7 | 0x76 (118) | Клавиша F7. |
DOM_VK_F8 | 0x77 (119) | Клавиша F8. |
DOM_VK_F9 | 0x78 (120) | Клавиша F9. |
DOM_VK_F10 | 0x79 (121) | Клавиша F10. |
DOM_VK_F11 | 0x7A (122) | Клавиша F11. |
DOM_VK_F12 | 0x7B (123) | Клавиша F12. |
DOM_VK_F13 | 0x7C (124) | Клавиша F13. |
DOM_VK_F14 | 0x7D (125) | Клавиша F14. |
DOM_VK_F15 | 0x7E (126) | Клавиша F15. |
DOM_VK_F16 | 0x7F (127) | Клавиша F16. |
DOM_VK_F17 | 0x80 (128) | Клавиша F17. |
DOM_VK_F18 | 0x81 (129) | Клавиша F18. |
DOM_VK_F19 | 0x82 (130) | Клавиша F19. |
DOM_VK_F20 | 0x83 (131) | Клавиша F20. |
DOM_VK_F21 | 0x84 (132) | Клавиша F21. |
DOM_VK_F22 | 0x85 (133) | Клавиша F22. |
DOM_VK_F23 | 0x86 (134) | Клавиша F23. |
DOM_VK_F24 | 0x87 (135) | Клавиша F24. |
DOM_VK_NUM_LOCK | 0x90 (144) | Клавиша Num Lock. |
DOM_VK_SCROLL_LOCK | 0x91 (145) | Клавиша Scroll Lock. |
DOM_VK_WIN_OEM_FJ_JISHO | 0x92 (146) | Специфическая клавиша OEM в Windows. Используется как клавиша «Словарь» на клавиатуре Fujitsu OASYS. |
DOM_VK_WIN_OEM_FJ_MASSHOU | 0x93 (147) | Специфическая клавиша OEM в Windows. Используется как клавиша «Удалить слово» на клавиатуре Fujitsu OASYS. |
DOM_VK_WIN_OEM_FJ_TOUROKU | 0x94 (148) | Специфическая клавиша OEM в Windows. Используется как клавиша «Зарегистрировать слово» на клавиатуре Fujitsu OASYS. |
DOM_VK_WIN_OEM_FJ_LOYA | 0x95 (149) | Специфическая клавиша OEM в Windows. Используется как клавиша «Левая OYAYUBI» на клавиатуре Fujitsu OASYS. |
DOM_VK_WIN_OEM_FJ_ROYA | 0x96 (150) | Специфическая клавиша OEM в Windows. Используется как клавиша «Правая OYAYUBI» на клавиатуре Fujitsu OASYS. |
DOM_VK_CIRCUMFLEX | 0xA0 (160) | Клавиша с циркумфлексом («^»). |
DOM_VK_EXCLAMATION | 0xA1 (161) | Клавиша восклицательного знака («!»). |
DOM_VK_DOUBLE_QUOTE | 0xA2 (162) | Клавиша двойных кавычек («\""). |
DOM_VK_HASH | 0xA3 (163) | Клавиша решетки («#»). |
DOM_VK_DOLLAR | 0xA4 (164) | Клавиша знака доллара («$»). |
DOM_VK_PERCENT | 0xA5 (165) | Клавиша процента («%»). |
DOM_VK_AMPERSAND | 0xA6 (166) | Клавиша амперсанда («&»). |
DOM_VK_UNDERSCORE | 0xA7 (167) | Клавиша нижнего подчеркивания («_»). |
DOM_VK_OPEN_PAREN | 0xA8 (168) | Клавиша открытой скобки («(»). |
DOM_VK_CLOSE_PAREN | 0xA9 (169) | Клавиша закрытой скобки (»)»). |
DOM_VK_ASTERISK | 0xAA (170) | Клавиша звездочки («*»). |
DOM_VK_PLUS | 0xAB (171) | Клавиша плюс («+»). |
DOM_VK_PIPE | 0xAC (172) | Клавиша вертикальной черты («|»). |
DOM_VK_HYPHEN_MINUS | 0xAD (173) | Клавиша дефиса/минуса («-»). |
DOM_VK_OPEN_CURLY_BRACKET | 0xAE (174) | Клавиша открытой фигурной скобки («{»). |
DOM_VK_CLOSE_CURLY_BRACKET | 0xAF (175) | Клавиша закрытой фигурной скобки («}»). |
DOM_VK_TILDE | 0xB0 (176) | Клавиша тильды («~»). |
DOM_VK_VOLUME_MUTE | 0xB5 (181) | Клавиша отключения звука. |
DOM_VK_VOLUME_DOWN | 0xB6 (182) | Клавиша уменьшения громкости. |
DOM_VK_VOLUME_UP | 0xB7 (183) | Клавиша увеличения громкости. |
DOM_VK_COMMA | 0xBC (188) | Клавиша запятой («,»). |
DOM_VK_PERIOD | 0xBE (190) | Клавиша точки («.»). |
DOM_VK_SLASH | 0xBF (191) | Клавиша слэша («/»). |
DOM_VK_BACK_QUOTE | 0xC0 (192) | Клавиша обратной апострофа («`»). |
DOM_VK_OPEN_BRACKET | 0xDB (219) | Клавиша открытой квадратной скобки («[»). |
DOM_VK_BACK_SLASH | 0xDC (220) | Клавиша обратного слэша («\»). |
DOM_VK_CLOSE_BRACKET | 0xDD (221) | Клавиша закрытой квадратной скобки («]»). |
DOM_VK_QUOTE | 0xDE (222) | Клавиша кавычек («'''»). |
DOM_VK_META | 0xE0 (224) | Клавиша Meta в Linux, клавиша Command в macOS. |
DOM_VK_ALTGR | 0xE1 (225) | Клавиша AltGr (клавиша Shift уровня 3 или клавиша Shift уровня 5) в Linux. |
DOM_VK_WIN_ICO_HELP | 0xE3 (227) | Специфическая клавиша OEM в Windows. Используется (использовалась?) на клавиатурах Olivetti ICO. |
DOM_VK_WIN_ICO_00 | 0xE4 (228) | Специфическая клавиша OEM в Windows. Используется (использовалась?) на клавиатурах Olivetti ICO. |
DOM_VK_WIN_ICO_CLEAR | 0xE6 (230) | Специфическая клавиша OEM в Windows. Используется (использовалась?) на клавиатурах Olivetti ICO. |
DOM_VK_WIN_OEM_RESET | 0xE9 (233) | Специфическая клавиша OEM в Windows. Используется на устройствах Nokia/Ericsson. |
DOM_VK_WIN_OEM_JUMP | 0xEA (234) | Специфическая клавиша OEM в Windows. Используется на устройствах Nokia/Ericsson. |
DOM_VK_WIN_OEM_PA1 | 0xEB (235) | Специфическая клавиша OEM в Windows. Используется на устройствах Nokia/Ericsson. |
DOM_VK_WIN_OEM_PA2 | 0xEC (236) | Специфическая клавиша OEM в Windows. Используется на устройствах Nokia/Ericsson. |
DOM_VK_WIN_OEM_PA3 | 0xED (237) | Специфическая клавиша OEM в Windows. Используется на устройствах Nokia/Ericsson. |
DOM_VK_WIN_OEM_WSCTRL | 0xEE (238) | Специфическая клавиша OEM в Windows. Используется на устройствах Nokia/Ericsson. |
DOM_VK_WIN_OEM_CUSEL | 0xEF (239) | Специфическая клавиша OEM в Windows. Используется на устройствах Nokia/Ericsson. |
DOM_VK_WIN_OEM_ATTN | 0xF0 (240) | Специфическая клавиша OEM в Windows. Используется на устройствах Nokia/Ericsson. |
DOM_VK_WIN_OEM_FINISH | 0xF1 (241) | Специфическая клавиша OEM в Windows. Используется на устройствах Nokia/Ericsson. |
DOM_VK_WIN_OEM_COPY | 0xF2 (242) | Специфическая клавиша OEM в Windows. Используется на устройствах Nokia/Ericsson. |
DOM_VK_WIN_OEM_AUTO | 0xF3 (243) | Специфическая клавиша OEM в Windows. Используется на устройствах Nokia/Ericsson. |
DOM_VK_WIN_OEM_ENLW | 0xF4 (244) | Специфическая клавиша OEM в Windows. Используется на устройствах Nokia/Ericsson. |
DOM_VK_WIN_OEM_BACKTAB | 0xF5 (245) | Специфическая клавиша OEM в Windows. Используется на устройствах Nokia/Ericsson. |
DOM_VK_ATTN | 0xF6 (246) | Клавиша Attn (внимание) на компьютерах IBM среднего класса, например, AS/400. |
DOM_VK_CRSEL | 0xF7 (247) | Клавиша CrSel (выбор курсора) на клавиатуре IBM 3270. |
DOM_VK_EXSEL | 0xF8 (248) | Клавиша ExSel (расширенный выбор) на клавиатуре IBM 3270. |
DOM_VK_EREOF | 0xF9 (249) | Клавиша стирания конца файла (Erase EOF) на клавиатуре IBM 3270. |
DOM_VK_PLAY | 0xFA (250) | Клавиша воспроизведения (Play) на клавиатуре IBM 3270. |
DOM_VK_ZOOM | 0xFB (251) | Клавиша масштабирования. |
DOM_VK_PA1 | 0xFD (253) | Клавиша PA1 на клавиатуре IBM 3270. |
DOM_VK_WIN_OEM_CLEAR | 0xFE (254) | Клавиша очистки, но неясно, чем она отличается от DOM_VK_CLEAR. |
Примеры
window.addEventListener(
"keydown",
(event) => {
if (event.defaultPrevented) {
return; // Should do nothing if the default action has been cancelled
}
let handled = false;
if (event.key !== undefined) {
// Handle the event with KeyboardEvent.key
handled = true;
} else if (event.keyCode !== undefined) {
// Handle the event with KeyboardEvent.keyCode
handled = true;
}
if (handled) {
// Suppress "double action" if event handled
event.preventDefault();
}
},
true,
);
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильное устройство | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
keyCode |
1 | 12 | 1.5 | 12.1 | 1.2 | 18 | 4 | 12.1 | 1 | 1.0 | ≤37 |
Специфические клавиши OEM в Windows
В Windows некоторые значения кодов виртуальных клавиш определены (зарезервированы) для специфичных клавиш OEM. Они доступны для специальных клавиш на нестандартных клавиатурах. Другими словами, некоторые значения используются для разных целей разными производителями (или аппаратным обеспечением).
Начиная с Gecko 21 (и старше 15), значения специфичных клавиш OEM доступны только в атрибуте keyCode в Windows. Поэтому они не применимы для обычных веб-приложений. Они полезны только для интранет-приложений или в аналогичных ситуациях.
Подробную информацию см. в MSDN в разделе "Manufacturer-specific Virtual-Key Codes (Windows CE 5.0)".
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode