Spec-Zone.ru › Web APIs

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. Подробности см. в следующих правилах:

  1. Если система Windows и код исходной клавиши указывает, что клавиша – a-z или 0-9, используйте соответствующий код клавиши.

  2. Если система macOS и код исходной клавиши указывает, что клавиша – 0-9, используйте соответствующий код клавиши.

  3. Если нажатая клавиша вводит символ ASCII буквенно-цифрового типа без модификаторов клавиш, используйте соответствующий код клавиши.

  4. Если нажатая клавиша вводит символ ASCII буквенно-цифрового типа с модификатором клавиши Shift, используйте соответствующий код клавиши.

  5. Если нажатая клавиша вводит другой символ ASCII без модификаторов, используйте соответствующий код клавиши.

  6. Если нажатая клавиша вводит другой символ ASCII с модификатором клавиши Shift, используйте соответствующий код клавиши.

  7. В противном случае, т.е. нажатая клавиша вводит символ Unicode:

    1. Если раскладка клавиатуры поддерживает ASCII (т.е. может вводить буквы ASCII), используйте 0 или выполните вычисления по следующим дополнительным правилам.

    2. В противном случае, т.е. раскладка клавиатуры не поддерживает ASCII, используйте раскладку клавиатуры, поддерживающую ASCII, установленную в среде с наивысшим приоритетом:

      1. Если нажатая клавиша на альтернативной раскладке вводит символ ASCII буквенно-цифрового типа, используйте соответствующий код клавиши.
      2. В противном случае, используйте 0 или выполните вычисления по следующим дополнительным правилам.

Gecko устанавливает значения keyCode для клавиш пунктуации, насколько это возможно (когда достигнуты пункты 7.1 или 7.2 в вышеприведенном списке), следуя этим правилам:

Предупреждение: Цель этих новых дополнительных правил заключается в том, чтобы пользователи, чьи раскладки клавиатуры сопоставляют символы Unicode с клавишами пунктуации в раскладке клавиатуры США, могли использовать веб-приложения, которые поддерживают Firefox только с раскладками клавиатуры, поддерживающими ASCII, или только с раскладкой клавиатуры США. В противном случае новые значения keyCode могут конфликтовать с другими клавишами. Например, если активной является русская раскладка, значение keyCode и для клавиши "Period", и для клавиши "Slash" равно 190 (KeyEvent.DOM_VK_PERIOD). Если вам нужно различать эти клавиши, но вы не хотите самостоятельно поддерживать все раскладки клавиатур мира, вы, вероятно, должны использовать KeyboardEvent.code.

  1. Если выполняется macOS или Linux:

    1. Если активная раскладка клавиатуры не поддерживает ASCII, а альтернативная раскладка поддерживает ASCII.

      1. Если альтернативная раскладка поддерживающая ASCII, генерирует символ ASCII с помощью только ненажатых клавиш, используйте keyCode для символа.
      2. Если альтернативная раскладка поддерживающая ASCII, генерирует символ ASCII с нажатым модификатором Shift, используйте keyCode для сдвинутого символа.
      3. В противном случае, используйте keyCode для символа ASCII, генерируемого клавишей при активной раскладке клавиатуры США.
    2. В противном случае, используйте keyCode для символа ASCII, генерируемого клавишей при активной раскладке клавиатуры США.

  2. Если выполняется на Windows:

    1. Используйте значение keyCode для символа ASCII, генерируемого клавишей, которая отображается в том же коде виртуальной клавиши Windows при активной раскладке клавиатуры США.
Значения keyCode для каждого браузера в событии keydown, вызванном нажатием печатаемых клавиш в стандартном расположении
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)
END_OF_DOCUMENT_MARKER
"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
Значения keyCode для каждого браузера в событии keydown, вызванном печатаемыми клавишами в стандартном расположении (знаки препинания в американской раскладке):
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).

Непечатные клавиши (клавиши функций)

Значения keyCode каждого события keydown браузера, вызванного модификаторными клавишами:
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" с меткой "英数".

END_OF_DOCUMENT_MARKER
Значения keyCode для события keydown каждого браузера, вызванного непечатаемыми клавишами:
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).

Значения keyCode для события keydown в браузерах, вызванного функциональными клавишами:
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

Значения keyCode для события keydown каждого браузера, вызванного клавишами на цифровом блоке в состоянии NumLock
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.

Значения keyCode для события keydown каждого браузера, вызванного клавишами на дополнительной цифровой клавиатуре без состояния NumLock
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,
);

Спецификации

Спецификация
События пользовательского интерфейса
# dom-keyboardevent-keycode

Совместимость с браузерами

Рабочий стол Мобильное устройство
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API