KeyboardEvent: keyCode 属性
已弃用: 此功能不再推荐。虽然一些浏览器可能仍然支持它,但它可能已经从相关的 Web 标准中删除,或者正在被删除,或者可能只为了兼容性目的而保留。避免使用它,并尽可能更新现有代码;查看本页底部 的兼容性表格以指导您的决定。请注意,此功能可能随时停止工作。
已弃用的 KeyboardEvent.keyCode
只读属性表示一个系统和实现相关的数字代码,它标识按下的键的未修改值。
这通常是与键对应的十进制 ASCII (RFC 20) 或 Windows 1252 代码。如果无法识别键,则此值为 0
。
如果可能,您应该避免使用它;它已经弃用了一段时间。相反,您应该使用 KeyboardEvent.code
(用于按下的物理键)或 KeyboardEvent.key
(用于键映射到的字符)。如果您要针对非常旧的浏览器,请检查这两个属性的兼容性。
注意: Web 开发人员在处理 keydown
和 keyup
事件时,不应使用 keyCode
属性来表示可打印字符。如上所述,keyCode
属性对可打印字符(特别是那些使用 Shift 或 Alt 键按下的字符)没有用。
keyCode 的值
标准位置上的可打印键
按下或释放标准位置上的可打印键所触发的键事件的值在不同浏览器之间不兼容。
IE 只是将本机虚拟键码值公开为 KeyboardEvent.keyCode
。
Google Chrome、Chromium 和 Safari 必须从输入字符中确定该值。如果输入的字符可以使用美国键盘布局输入,则它们使用美国键盘布局上的 keyCode
值。
Firefox 从 ASCII 字符中获取 keyCode
值,这些字符可以通过该键输入 - 即使使用 Shift 修饰符或支持 ASCII 的键盘布局。有关详细信息,请参见以下规则
- 如果系统是 Windows 并且按下的键的本机键码表明该键是 a-z 或 0-9,则使用该键的键码。
- 如果系统是 Mac 并且按下的键的本机键码表明该键是 0-9,则使用该键的键码。
- 如果按下的键在没有修饰符键的情况下输入一个 ASCII 字母或数字字符,则使用该键的键码。
- 如果按下的键在使用 Shift 键修饰符的情况下输入一个 ASCII 字母或数字字符,则使用该键的键码。
- 如果按下的键在没有修饰符键的情况下输入一个不同的 ASCII 字符,则使用该键的键码。
- 如果按下的键在使用 Shift 键修饰符的情况下输入一个不同的 ASCII 字符,则使用该键的键码。
- 否则,即按下的键输入一个 Unicode 字符
- 如果键盘布局支持 ASCII(即可以输入 ASCII 字母),则使用 0 或使用以下附加规则进行计算。
- 否则,即键盘布局不支持 ASCII,则使用环境中优先级最高的已安装的 ASCII 支持键盘布局
- 如果按下的键在备用键盘布局上输入一个 ASCII 字母或数字字符,则使用该键的键码。
- 否则,使用 0 或使用以下附加规则进行计算。
Gecko 设置尽可能多的标点符号键的 keyCode
值(当达到上述列表中的 7.1 或 7.2 点时)并使用以下规则
警告: 这些新附加规则的目的是让那些键盘布局将 Unicode 字符映射到美国键盘布局中的标点符号键的用户能够使用仅支持 ASCII 支持键盘布局或仅支持美国键盘布局的 Firefox 的 Web 应用程序。否则,新映射的 keyCode
值可能会与其他键冲突。例如,如果活动键盘布局是俄语,则 “Period” 键和 “Slash” 键的 keyCode
值均为 190
(KeyEvent.DOM_VK_PERIOD
)。如果您需要区分这些键,但又不想自行支持世界上所有键盘布局,那么您可能应该使用 KeyboardEvent.code
.
- 如果运行 macOS 或 Linux
- 如果活动键盘布局不支持 ASCII,并且有一个可用的备用 ASCII 支持键盘布局。
- 如果备用 ASCII 支持键盘布局仅通过未修改的键产生一个 ASCII 字符,则使用该字符的
keyCode
。 - 如果备用 ASCII 支持键盘布局使用 Shift 键修饰符产生一个 ASCII 字符,则使用该字符的
keyCode
。 - 否则,使用当美国键盘布局处于活动状态时由该键产生的 ASCII 字符的
keyCode
。
- 如果备用 ASCII 支持键盘布局仅通过未修改的键产生一个 ASCII 字符,则使用该字符的
- 否则,使用当美国键盘布局处于活动状态时由该键产生的 ASCII 字符的
keyCode
。
- 如果活动键盘布局不支持 ASCII,并且有一个可用的备用 ASCII 支持键盘布局。
- 如果在 Windows 上运行
- 使用当美国键盘布局处于活动状态时,与 Windows 中相同虚拟键码映射到的键产生的 ASCII 字符的
keyCode
值。
- 使用当美国键盘布局处于活动状态时,与 Windows 中相同虚拟键码映射到的键产生的 ASCII 字符的
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) | |||||||||||||||||
美国 | 日语 | 希腊语 | 美国 | 日语 | 希腊语 | 美国 | 日语 | 希腊语 | 美国 | 日语 | 希腊语 | 美国 | 日语 | 希腊语 | 美国 | 日语 | 希腊语 | 美国 | 日语 | 希腊语 | 美国 | 日语 | 希腊语 | |
"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" 与 Shift |
||||||||||||||||||||||||
"Period" |
0xBE (190) |
0xBE (190) |
0xBE (190) |
0xBE (190) |
0xBE (190) |
0xBE (190) |
0xBE (190) |
0xBE (190) |
||||||||||||||||
"Period" 与 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" 与 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" 带 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" 带 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" 带 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" 带 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" 带 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" 带 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" 带 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 |
美国 | 日语 | 希腊语 | 美国 | 日语 | 希腊语 | 美国 | 日语 | 希腊语 | 美国 | 日语 | 希腊语 | 美国 | 日语 | 希腊语 | 美国 | 日语 | 希腊语 | 美国 | 日语 | 希腊语 | 美国 | 日语 | 希腊语 |
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] 该值来自 JIS 键盘输入。当您使用 ANSI 键盘时,keyCode 值和输入字符将从美国键盘布局中选择。
[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] | ❌N/A | 0xE1 (225) ⚠️ |
❌ N/A | [1] | ❌ N/A | 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 键映射到 PC 键盘的 Insert 键。这些 keyCode
值与 Insert 键的 keyCode
值相同。
[3] 在 Fedora 20 上测试。
[4] 仅触发 keyup
事件。
[5] PC 的 PrintScreen、ScrollLock 和 Pause 分别映射到 Mac 的 F13、F14 和 F15。Chrome 和 Safari 将它们映射到与 Mac 键相同的 keyCode
值。
[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] 在 PC 上,PrintScreen、ScrollLock 和 Pause 分别映射到 Mac 的 F13、F14 和 F15。Firefox 为它们设置与 PC 键相同的 keyCode
值。
[3] 在 Fedora 20 上测试。这些键不会导致 GDK_Fxx
keysyms。如果这些键导致正确的 keysyms,则这些值必须与 IE 相同。
[4] 在 Fedora 20 上测试。这些键不会在 Chromium 上导致 DOM 键事件。
[5] keyUp
事件的 keyCode
值为 0x83 (131)
。
[6] 在 Fedora 20 上测试。这些键不会在 Firefox 上导致 DOM 键事件。
[7] 仅触发 keydown
事件。
[8] Firefox 上没有触发任何 DOM 键事件。
数字键盘键
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"
键在 Mac 上充当 "Clear"
键。
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 在 KeyboardEvent
中定义了许多 keyCode
值,以明确地创建映射表。这些值对 Firefox 的附加组件开发人员很有用,但在公共网页中并没有那么有用。
常量 | 值 | 描述 |
---|---|---|
DOM_VK_CANCEL |
0x03 (3) | 取消键。 |
DOM_VK_HELP |
0x06 (6) | 帮助键。 |
DOM_VK_BACK_SPACE |
0x08 (8) | 退格键。 |
DOM_VK_TAB |
0x09 (9) | Tab 键。 |
DOM_VK_CLEAR |
0x0C (12) | NumLock 解锁时数字键盘上的 "5" 键。或者在 Mac 上,位于 NumLock 键的清除键。 |
DOM_VK_RETURN |
0x0D (13) | 主键盘上的回车/输入键。 |
DOM_VK_ENTER |
0x0E (14) | 保留,但未使用。 已弃用 (已删除,请参阅 Firefox 错误 969247.) |
DOM_VK_SHIFT |
0x10 (16) | Shift 键。 |
DOM_VK_CONTROL |
0x11 (17) | Control 键。 |
DOM_VK_ALT |
0x12 (18) | Alt (Mac 上的 Option) 键。 |
DOM_VK_PAUSE |
0x13 (19) | 暂停键。 |
DOM_VK_CAPS_LOCK |
0x14 (20) | 大写锁定。 |
DOM_VK_KANA |
0x15 (21) | 在 Gecko 4.0 中添加了对该 keyCode 的 Linux 支持。 |
DOM_VK_HANGUL |
0x15 (21) | 在 Gecko 4.0 中添加了对该 keyCode 的 Linux 支持。 |
DOM_VK_EISU |
0x 16 (22) | 日语 Mac 键盘上的 "英数" 键。 |
DOM_VK_JUNJA |
0x17 (23) | 在 Gecko 4.0 中添加了对该 keyCode 的 Linux 支持。 |
DOM_VK_FINAL |
0x18 (24) | 在 Gecko 4.0 中添加了对该 keyCode 的 Linux 支持。 |
DOM_VK_HANJA |
0x19 (25) | 在 Gecko 4.0 中添加了对该 keyCode 的 Linux 支持。 |
DOM_VK_KANJI |
0x19 (25) | 在 Gecko 4.0 中添加了对该 keyCode 的 Linux 支持。 |
DOM_VK_ESCAPE |
0x1B (27) | Esc 键。 |
DOM_VK_CONVERT |
0x1C (28) | 在 Gecko 4.0 中添加了对该 keyCode 的 Linux 支持。 |
DOM_VK_NONCONVERT |
0x1D (29) | 在 Gecko 4.0 中添加了对该 keyCode 的 Linux 支持。 |
DOM_VK_ACCEPT |
0x1E (30) | 在 Gecko 4.0 中添加了对该 keyCode 的 Linux 支持。 |
DOM_VK_MODECHANGE |
0x1F (31) | 在 Gecko 4.0 中添加了对该 keyCode 的 Linux 支持。 |
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) | 在 Gecko 4.0 中添加了对该 keyCode 的 Linux 支持。 |
DOM_VK_PRINT |
0x2A (42) | 在 Gecko 4.0 中添加了对该 keyCode 的 Linux 支持。 |
DOM_VK_EXECUTE |
0x2B (43) | 在 Gecko 4.0 中添加了对该 keyCode 的 Linux 支持。 |
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) | Atmark ("@") 键。 |
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 徽标键。或 Linux 上的 Super 或 Hyper 键。 |
DOM_VK_CONTEXT_MENU |
0x5D (93) | 打开上下文菜单键。 |
DOM_VK_SLEEP |
0x5F (95) | 在 Gecko 4.0 中添加了对该 keyCode 的 Linux 支持。 |
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) | Windows 上的 OEM 特定键。用于富士通 OASYS 的 "字典" 键。 |
DOM_VK_WIN_OEM_FJ_MASSHOU |
0x93 (147) | Windows 上的 OEM 特定键。用于富士通 OASYS 的 "取消注册单词" 键。 |
DOM_VK_WIN_OEM_FJ_TOUROKU |
0x94 (148) | Windows 上的 OEM 特定键。用于富士通 OASYS 的 "注册单词" 键。 |
DOM_VK_WIN_OEM_FJ_LOYA |
0x95 (149) | Windows 上的 OEM 特定键。用于富士通 OASYS 的 "左 OYAYUBI" 键。 |
DOM_VK_WIN_OEM_FJ_ROYA |
0x96 (150) | Windows 上的 OEM 特定键。用于富士通 OASYS 的 "右 OYAYUBI" 键。 |
DOM_VK_CIRCUMFLEX |
0xA0 (160) | Circumflex ("^") 键。 |
DOM_VK_EXCLAMATION |
0xA1 (161) | 感叹号 ("!") 键。 |
DOM_VK_DOUBLE_QUOTE |
0xA2 (162) | 双引号 (""") 键。 |
DOM_VK_HASH |
0xA3 (163) | Hash ("#") 键。 |
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) | Linux 上的 Meta 键,Mac 上的 Command 键。 |
DOM_VK_ALTGR |
0xE1 (225) | Linux 上的 AltGr 键 (3 级 Shift 键或 5 级 Shift 键)。 |
DOM_VK_WIN_ICO_HELP |
0xE3 (227) | Windows 上的 OEM 特定键。用于 Olivetti ICO 键盘。 |
DOM_VK_WIN_ICO_00 |
0xE4 (228) | Windows 上的 OEM 特定键。用于 Olivetti ICO 键盘。 |
DOM_VK_WIN_ICO_CLEAR |
0xE6 (230) | Windows 上的 OEM 特定键。用于 Olivetti ICO 键盘。 |
DOM_VK_WIN_OEM_RESET |
0xE9 (233) | Windows 上的 OEM 特定键。用于诺基亚/爱立信的设备。 |
DOM_VK_WIN_OEM_JUMP |
0xEA (234) | Windows 上的 OEM 特定键。用于诺基亚/爱立信的设备。 |
DOM_VK_WIN_OEM_PA1 |
0xEB (235) | Windows 上的 OEM 特定键。用于诺基亚/爱立信的设备。 |
DOM_VK_WIN_OEM_PA2 |
0xEC (236) | Windows 上的 OEM 特定键。用于诺基亚/爱立信的设备。 |
DOM_VK_WIN_OEM_PA3 |
0xED (237) | Windows 上的 OEM 特定键。用于诺基亚/爱立信的设备。 |
DOM_VK_WIN_OEM_WSCTRL |
0xEE (238) | Windows 上的 OEM 特定键。用于诺基亚/爱立信的设备。 |
DOM_VK_WIN_OEM_CUSEL |
0xEF (239) | Windows 上的 OEM 特定键。用于诺基亚/爱立信的设备。 |
DOM_VK_WIN_OEM_ATTN |
0xF0 (240) | Windows 上的 OEM 特定键。用于诺基亚/爱立信的设备。 |
DOM_VK_WIN_OEM_FINISH |
0xF1 (241) | Windows 上的 OEM 特定键。用于诺基亚/爱立信的设备。 |
DOM_VK_WIN_OEM_COPY |
0xF2 (242) | Windows 上的 OEM 特定键。用于诺基亚/爱立信的设备。 |
DOM_VK_WIN_OEM_AUTO |
0xF3 (243) | Windows 上的 OEM 特定键。用于诺基亚/爱立信的设备。 |
DOM_VK_WIN_OEM_ENLW |
0xF4 (244) | Windows 上的 OEM 特定键。用于诺基亚/爱立信的设备。 |
DOM_VK_WIN_OEM_BACKTAB |
0xF5 (245) | Windows 上的 OEM 特定键。用于诺基亚/爱立信的设备。 |
DOM_VK_ATTN |
0xF6 (246) | IBM 中端计算机 (例如 AS/400) 的 Attn (Attention) 键。 |
DOM_VK_CRSEL |
0xF7 (247) | IBM 3270 键盘布局的 CrSel (Cursor Selection) 键。 |
DOM_VK_EXSEL |
0xF8 (248) | IBM 3270 键盘布局的 ExSel (Extend Selection) 键。 |
DOM_VK_EREOF |
0xF9 (249) | IBM 3270 键盘布局的 Erase EOF 键。 |
DOM_VK_PLAY |
0xFA (250) | IBM 3270 键盘布局的 Play 键。 |
DOM_VK_ZOOM |
0xFB (251) | 缩放键。 |
DOM_VK_PA1 |
0xFD (253) | IBM 3270 键盘布局的 PA1 键。 |
DOM_VK_WIN_OEM_CLEAR |
0xFE (254) | Clear 键,但我们不确定它与 `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,
);
规范
规范 |
---|
UI 事件 # dom-keyboardevent-keycode |
浏览器兼容性
BCD 表仅在浏览器中加载
Windows 上的 OEM 特定键
在 Windows 上,虚拟键码的一些值被定义 (保留) 用于 OEM 特定键。它们可用于非标准键盘上的特殊键。换句话说,某些值被两个或多个供应商 (或硬件) 用于不同的含义。
从 Gecko 21 开始 (以及早于 15),OEM 特定键值仅在 Windows 上的 keyCode 属性中可用。因此,它们对普通 Web 应用程序没有用。它们仅对 Intranet 应用程序或类似情况有用。
有关详细信息,请参阅 MSDN 中的 "制造商特定的虚拟键码 (Windows CE 5.0)"。