KeyboardEvent.keyCode

已弃用: 不再推荐使用该特性。虽然一些浏览器仍然支持它,但也许已从相关的 web 标准中移除,也许正准备移除或出于兼容性而保留。请尽量不要使用该特性,并更新现有的代码;参见本页面底部的兼容性表格以指导你作出决定。请注意,该特性随时可能无法正常工作。

这个只读的属性 KeyboardEvent.keyCode 代表着一个唯一标识的所按下的键的未修改值,它依据于一个系统和实现相关的数字代码。这通常是与密钥对应的二进制的 ASCII (RFC 20) 或 Windows 1252 码。如果这个键不能被标志,这个值为 0。

你应该尽量避免使用它;它已经被弃用了一段时间。相反的,如果它在你的浏览器中被实现了的话,你应该使用KeyboardEvent.code。不幸的是,有一些浏览器还是没有实现它,所以你在使用之前必须要小心,确认你所使用的那个被所有目标浏览器所支持。

备注: 在处理 keydown 和 keyup 事件时,Web 开发人员不应使用可打印字符的 keycode 属性。如上所述,keycode 属性对可打印字符不有用,尤其是那些按下 shift 或 alt 键的输入。在实现快捷键处理程序时,事件(“keypress”)事件通常更好(至少当 gecko 是正在使用的运行时)。详情请参见 Gecko 按键事件。

Example

js
window.addEventListener(
  "keydown",
  function (event) {
    if (event.defaultPrevented) {
      return; // 如果已取消默认操作,则不应执行任何操作
    }

    var handled = false;
    if (event.key !== undefined) {
      // 使用 KeyboardEvent.key 处理事件,并将 handled 设置为 true。
    } else if (event.keyCode !== undefined) {
      //使用 KeyboardEvent.keyCode 处理事件并将 handled 设置为 true。
    }

    if (handled) {
      // 如果事件已处理,则禁止“双重操作”
      event.preventDefault();
    }
  },
  true,
);

规范

Specification
UI Events
# dom-keyboardevent-keycode

浏览器兼容性

BCD tables only load in the browser

键码值

标准位置的可打印键

在标准位置按下或释放可打印键导致的按键事件值在浏览器之间不兼容。 IE 只将本机虚拟密钥代码值公开为 keyboardvent.keycode。 Google Chrome、Chromium 和 Safari 必须根据输入字符确定值。如果输入字符可以用 US 键盘布局输入,则使用 US 键盘布局上的 keycode 值。 从 gecko 15 geckore lease(“15.0”)开始,gecko 从一个可由键输入的 ASCII 字符(即使具有移位修饰符或支持 ASCII 的键盘布局)决定键码值。有关详细信息,请参见以下规则:

  1. 如果系统是 Windows,并且按下键的本机键代码指示键是 A-Z 或 0-9,请使用 keycode。
  2. 如果系统是 Mac,并且按下键的本机键码指示键为 0-9,则使用 keycode。
  3. 如果按下键输入一个 ASCII 字母或数字,没有修改键,请使用 keycode。
  4. 如果按下键输入带 SHIFT 键的 ASCII 字母或数字,请使用 keycode。
  5. 如果按下键输入另一个没有修改键的 ASCII 字符,请使用 keycode。
  6. 如果按下键输入另一个带 SHIFT 键的 ASCII 字符,请使用 keycode。
  7. 否则,即按下键输入一个 Unicode 字符:
  • 如果键盘布局是支持 ASCII 的键盘布局(即,可以输入 ASCII 字母),则使用 0 或者根据下面的附加规则计算。
  • 否则,即键盘布局不支持 ASCII,使用环境中安装的具有最高优先级的支持 ASCII 的键盘布局:
    • 如果按备用键盘布局上的键输入一个 ASCII 字母或数字,请使用 keycode。
    • 否则,使用 0 或者根据下面的附加规则计算。

从 Firefox 60 开始,Gecko 会尽可能的根据以下规则额设置标点符号的 keyCode 值(当满足上述 7.1 或者 7.2 的时候):

警告: 这些附加规则的目的是为了使键盘布局映射 unicode 字符映射到美国键盘标点符号的用户可以使用只支持 ASCII 的键盘或者美国键盘布局的 Firefox 的 web 应用。否则,新映射的 keyCode 值可能会和其他按键冲突。例如,如果当前键盘布局是俄语,"Period" 键 和 "Slash" 键的 keyCode 都会是 190KeyEvent.DOM_VK_PERIOD)。如果你需要区分这些按键但是你自己又不想支持世界上所有的键盘布局,你可能应该使用 KeyboardEvent.code

  1. 如果运行 macOS 或者 Linux:
    1. 如果你当前的键盘布局不支持 ASCII 并且候选支持 ASCII 键盘布局可用。
      1. 如果候选支持 ASCII 的键盘布局仅通过未修改的键产生 ASCII 字符,请对该字符使用keyCode
      2. 如果候选支持 ASCII 的键盘布局产生带有 Shift 键修饰符的 ASCII 字符,请对该字符使用keyCode
      3. 否则,在美国键盘布局激活时,使用使用keyCode表示由按键产生的 ASCII 字符。
    2. 否则,在美国键盘布局激活时,使用使用keyCode表示由按键产生的 ASCII 字符。
  2. 如果运行 Windows:
    1. 当美国键盘布局激活时,使用映射到 Windows 的相同虚拟键代码的按键产生的 ASCII 字符的keyCode值。

由标准位置的可打印键引起的每个浏览器的 keydown 事件的 keycode 值

KeyboardEvent.code Internet Explorer 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 Japanese Greek US Japanese Greek US Japanese Greek US Japanese Greek US Japanese Greek US Japanese Greek US Japanese Greek US Japanese Greek
KeyboardEvent.code US Japanese Greek US Japanese Greek US Japanese Greek US Japanese Greek US Japanese Greek US Japanese Greek US Japanese Greek US Japanese Greek
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
"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)

由标准位置的可打印键(US 布局中的标点符号)引起的每个浏览器的 keydown 事件的 keycode 值:

KeyboardEvent.code Internet Explorer 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)
US Japanese Greek US Japanese Greek US Japanese Greek US Japanese Greek US Japanese Greek US Japanese Greek US Japanese Greek US Japanese Greek
KeyboardEvent.code US Japanese Greek US Japanese Greek US Japanese Greek US Japanese Greek US Japanese Greek US Japanese Greek US Japanese Greek US Japanese Greek
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
"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" with 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" with Shift 0xDC (220) 0xDC (220) 0xBD (189) 0xDC (220) 0xDC (220)
  1. 该值是从 JIS 键盘输入的。使用 ANSI 键盘时,键代码值和输入字符是从美国键盘布局中选择的。
  2. 按键是一个死键。keyup 事件的值是 0xba(186)。
  3. 按键是一个死键。keyup 事件的值为 0x10(16)。
  4. 没有触发任何按键事件。
  5. 该键在希腊键盘布局中不可用(不输入任何字符)。keyup 事件的值为 0x00(0)。

不可打印键(功能键)

由修改键引起的每个浏览器的 keydown 事件的 keycode 值:
KeyboardEvent.code Internet Explorer 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)
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
"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" when it's "AltGraph" key *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)
"OSLeft" 0x5B (91) 0x5B (91) 0x5B (91) 0x5B (91) 0x5B (91) 0x5B (91) 0xE0 (224) 0x5B (91)
"OSRight" 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)
  1. 在 Windows 上,“altgraph”键导致“controlLeft”键事件和“altRight”键事件。
  2. 当日语键盘布局处于活动状态时,“capslock”键没有 Shift 会导致 0xf0(240)。该键作为“Alphanumeric”键工作,其标签为“英数”。
  3. 当日语键盘布局处于活动状态时,“capslock”键没有 Shift 会导致 0x00(0)。该键作为“Alphanumeric”键工作,其标签为“英数”。

由不可打印的键引起的每个浏览器的 keydown 事件的 keycode 值:

KeyboardEvent.code Internet Explorer 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)
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
"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)
  1. keypress 事件被激发,其 keypcode 和 charcode 为 0x10(16),但文本未输入编辑器。
  2. 在 Mac 电脑上,“Help”键映射到电脑键盘的“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)。

由功能键引起的每个浏览器的 keydown 事件的 keycode 值:

KeyboardEvent.code Internet Explorer 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)
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
"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
  1. 在 Fedora 20 上测试。
  2. PC 的“PrintScreen”、“ScrollLock”和“Pause”映射到 Mac 的“F13”、“F14”和“F15”。火狐映射到和 PC 相同的keyCode
  3. 在 Fedora 20 上测试。这些键不会导致GDK_Fxx 按键符号。如果键产生正确的按键符号,这些值必须与 IE 相同。
  4. 在 Fedora 20 上测试。这些键不会在 chromium 上引起 dom 键事件。
  5. keyup 事件的 keycode 值为 0x83(131)。
  6. 在 Fedora 20 上测试。这些密钥不会在 Firefox 上引起 DOM 密钥事件。
  7. 仅激发 keydown 事件。
  8. 在 Firefox 上不会触发任何 DOM 密钥事件。

小键盘键

由 numPad 中的键在 numLock 状态下导致的每个浏览器的 keyDown 事件的 keycode 值

KeyboardEvent.code Internet Explorer 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)
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
"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" inputting "," 0xC2 (194) 0xC2 (194) 0xBC (188) Always inputs "." 0xBC (188) 0xC2 (194) 0x6C (108) Always inputs "."
"NumpadComma" inputting "." or empty string 0xC2 (194) 0xC2 (194) 0xBE (190) 0x6E (110) 0xBE (190) 0xC2 (194) 0x6C (108) 0x6E (110)
"NumpadDecimal" inputting "." 0x6E (110) 0x6E (110) 0x6E (110) 0x6E (110) 0x6E (110) 0x6E (110) 0x6E (110) 0x6E (110)
"NumpadDecimal" inputting "," 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)
  1. “numlock”键在 Mac 上作为“clear”键工作。

由处于无 numlock 状态的 numpad 中的键引起的每个浏览器的 keydown 事件的 keycode 值

KeyboardEvent.code Internet Explorer 11 Google Chrome 34 Chromium 34 Gecko 29
Windows Windows Linux (Ubuntu 14.04) Windows Linux (Ubuntu 14.04)
KeyboardEvent.code Windows Windows Linux (Ubuntu 14.04) Windows Linux (Ubuntu 14.04)
Internet Explorer 11 Google Chrome 34 Chromium 34 Gecko 29
"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)

最近的 Mac 没有“numlock”键和状态。因此,未锁定状态不可用。

常数值的键码

gecko 在 keyboardvent 中定义了许多 keycode 值,用于显式地生成映射表。这些值对 Firefox 的附加开发人员很有用,但在公共网页中却没有那么有用。

常数 描述
DOM_VK_CANCEL 0x03 (3) Cancel key.
DOM_VK_HELP 0x06 (6) Help key.
DOM_VK_BACK_SPACE 0x08 (8) Backspace key.
DOM_VK_TAB 0x09 (9) Tab key.
DOM_VK_CLEAR 0x0C (12) "5" key on Numpad when NumLock is unlocked. Or on Mac, clear key which is positioned at NumLock key.
DOM_VK_RETURN 0x0D (13) Return/enter key on the main keyboard.
DOM_VK_ENTER 0x0E (14) Reserved, but not used. 已弃用 (Dropped, see Firefox bug 969247.)
DOM_VK_SHIFT 0x10 (16) Shift key.
DOM_VK_CONTROL 0x11 (17) Control key.
DOM_VK_ALT 0x12 (18) Alt (Option on Mac) key.
DOM_VK_PAUSE 0x13 (19) Pause key.
DOM_VK_CAPS_LOCK 0x14 (20) Caps lock.
DOM_VK_KANA 0x15 (21) Linux support for this keycode was added in Gecko 4.0.
DOM_VK_HANGUL 0x15 (21) Linux support for this keycode was added in Gecko 4.0.
DOM_VK_EISU 0x 16 (22) "英数" key on Japanese Mac keyboard.
DOM_VK_JUNJA 0x17 (23) Linux support for this keycode was added in Gecko 4.0.
DOM_VK_FINAL 0x18 (24) Linux support for this keycode was added in Gecko 4.0.
DOM_VK_HANJA 0x19 (25) Linux support for this keycode was added in Gecko 4.0.
DOM_VK_KANJI 0x19 (25) Linux support for this keycode was added in Gecko 4.0.
DOM_VK_ESCAPE 0x1B (27) Escape key.
DOM_VK_CONVERT 0x1C (28) Linux support for this keycode was added in Gecko 4.0.
DOM_VK_NONCONVERT 0x1D (29) Linux support for this keycode was added in Gecko 4.0.
DOM_VK_ACCEPT 0x1E (30) Linux support for this keycode was added in Gecko 4.0.
DOM_VK_MODECHANGE 0x1F (31) Linux support for this keycode was added in Gecko 4.0.
DOM_VK_SPACE 0x20 (32) Space bar.
DOM_VK_PAGE_UP 0x21 (33) Page Up key.
DOM_VK_PAGE_DOWN 0x22 (34) Page Down key.
DOM_VK_END 0x23 (35) End key.
DOM_VK_HOME 0x24 (36) Home key.
DOM_VK_LEFT 0x25 (37) Left arrow.
DOM_VK_UP 0x26 (38) Up arrow.
DOM_VK_RIGHT 0x27 (39) Right arrow.
DOM_VK_DOWN 0x28 (40) Down arrow.
DOM_VK_SELECT 0x29 (41) Linux support for this keycode was added in Gecko 4.0.
DOM_VK_PRINT 0x2A (42) Linux support for this keycode was added in Gecko 4.0.
DOM_VK_EXECUTE 0x2B (43) Linux support for this keycode was added in Gecko 4.0.
DOM_VK_PRINTSCREEN 0x2C (44) Print Screen key.
DOM_VK_INSERT 0x2D (45) Ins(ert) key.
DOM_VK_DELETE 0x2E (46) Del(ete) key.
DOM_VK_0 0x30 (48) "0" key in standard key location.
DOM_VK_1 0x31 (49) "1" key in standard key location.
DOM_VK_2 0x32 (50) "2" key in standard key location.
DOM_VK_3 0x33 (51) "3" key in standard key location.
DOM_VK_4 0x34 (52) "4" key in standard key location.
DOM_VK_5 0x35 (53) "5" key in standard key location.
DOM_VK_6 0x36 (54) "6" key in standard key location.
DOM_VK_7 0x37 (55) "7" key in standard key location.
DOM_VK_8 0x38 (56) "8" key in standard key location.
DOM_VK_9 0x39 (57) "9" key in standard key location.
DOM_VK_COLON 0x3A (58) Colon (":") key.
DOM_VK_SEMICOLON 0x3B (59) Semicolon (";") key.
DOM_VK_LESS_THAN 0x3C (60) Less-than ("<") key.
DOM_VK_EQUALS 0x3D (61) Equals ("=") key.
DOM_VK_GREATER_THAN 0x3E (62) Greater-than (">") key.
DOM_VK_QUESTION_MARK 0x3F (63) Question mark ("?") key.
DOM_VK_AT 0x40 (64) Atmark ("@") key.
DOM_VK_A 0x41 (65) "A" key.
DOM_VK_B 0x42 (66) "B" key.
DOM_VK_C 0x43 (67) "C" key.
DOM_VK_D 0x44 (68) "D" key.
DOM_VK_E 0x45 (69) "E" key.
DOM_VK_F 0x46 (70) "F" key.
DOM_VK_G 0x47 (71) "G" key.
DOM_VK_H 0x48 (72) "H" key.
DOM_VK_I 0x49 (73) "I" key.
DOM_VK_J 0x4A (74) "J" key.
DOM_VK_K 0x4B (75) "K" key.
DOM_VK_L 0x4C (76) "L" key.
DOM_VK_M 0x4D (77) "M" key.
DOM_VK_N 0x4E (78) "N" key.
DOM_VK_O 0x4F (79) "O" key.
DOM_VK_P 0x50 (80) "P" key.
DOM_VK_Q 0x51 (81) "Q" key.
DOM_VK_R 0x52 (82) "R" key.
DOM_VK_S 0x53 (83) "S" key.
DOM_VK_T 0x54 (84) "T" key.
DOM_VK_U 0x55 (85) "U" key.
DOM_VK_V 0x56 (86) "V" key.
DOM_VK_W 0x57 (87) "W" key.
DOM_VK_X 0x58 (88) "X" key.
DOM_VK_Y 0x59 (89) "Y" key.
DOM_VK_Z 0x5A (90) "Z" key.
DOM_VK_WIN 0x5B (91) Windows logo key on Windows. Or Super or Hyper key on Linux.
DOM_VK_CONTEXT_MENU 0x5D (93) Opening context menu key.
DOM_VK_SLEEP 0x5F (95) Linux support for this keycode was added in Gecko 4.0.
DOM_VK_NUMPAD0 0x60 (96) "0" on the numeric keypad.
DOM_VK_NUMPAD1 0x61 (97) "1" on the numeric keypad.
DOM_VK_NUMPAD2 0x62 (98) "2" on the numeric keypad.
DOM_VK_NUMPAD3 0x63 (99) "3" on the numeric keypad.
DOM_VK_NUMPAD4 0x64 (100) "4" on the numeric keypad.
DOM_VK_NUMPAD5 0x65 (101) "5" on the numeric keypad.
DOM_VK_NUMPAD6 0x66 (102) "6" on the numeric keypad.
DOM_VK_NUMPAD7 0x67 (103) "7" on the numeric keypad.
DOM_VK_NUMPAD8 0x68 (104) "8" on the numeric keypad.
DOM_VK_NUMPAD9 0x69 (105) "9" on the numeric keypad.
DOM_VK_MULTIPLY 0x6A (106) "*" on the numeric keypad.
DOM_VK_ADD 0x6B (107) "+" on the numeric keypad.
DOM_VK_SEPARATOR 0x6C (108)
DOM_VK_SUBTRACT 0x6D (109) "-" on the numeric keypad.
DOM_VK_DECIMAL 0x6E (110) Decimal point on the numeric keypad.
DOM_VK_DIVIDE 0x6F (111) "/" on the numeric keypad.
DOM_VK_F1 0x70 (112) F1 key.
DOM_VK_F2 0x71 (113) F2 key.
DOM_VK_F3 0x72 (114) F3 key.
DOM_VK_F4 0x73 (115) F4 key.
DOM_VK_F5 0x74 (116) F5 key.
DOM_VK_F6 0x75 (117) F6 key.
DOM_VK_F7 0x76 (118) F7 key.
DOM_VK_F8 0x77 (119) F8 key.
DOM_VK_F9 0x78 (120) F9 key.
DOM_VK_F10 0x79 (121) F10 key.
DOM_VK_F11 0x7A (122) F11 key.
DOM_VK_F12 0x7B (123) F12 key.
DOM_VK_F13 0x7C (124) F13 key.
DOM_VK_F14 0x7D (125) F14 key.
DOM_VK_F15 0x7E (126) F15 key.
DOM_VK_F16 0x7F (127) F16 key.
DOM_VK_F17 0x80 (128) F17 key.
DOM_VK_F18 0x81 (129) F18 key.
DOM_VK_F19 0x82 (130) F19 key.
DOM_VK_F20 0x83 (131) F20 key.
DOM_VK_F21 0x84 (132) F21 key.
DOM_VK_F22 0x85 (133) F22 key.
DOM_VK_F23 0x86 (134) F23 key.
DOM_VK_F24 0x87 (135) F24 key.
DOM_VK_NUM_LOCK 0x90 (144) Num Lock key.
DOM_VK_SCROLL_LOCK 0x91 (145) Scroll Lock key.
DOM_VK_WIN_OEM_FJ_JISHO 0x92 (146) An OEM specific key on Windows. This was used for "Dictionary" key on Fujitsu OASYS.
DOM_VK_WIN_OEM_FJ_MASSHOU 0x93 (147) An OEM specific key on Windows. This was used for "Unregister word" key on Fujitsu OASYS.
DOM_VK_WIN_OEM_FJ_TOUROKU 0x94 (148) An OEM specific key on Windows. This was used for "Register word" key on Fujitsu OASYS.
DOM_VK_WIN_OEM_FJ_LOYA 0x95 (149) An OEM specific key on Windows. This was used for "Left OYAYUBI" key on Fujitsu OASYS.
DOM_VK_WIN_OEM_FJ_ROYA 0x96 (150) An OEM specific key on Windows. This was used for "Right OYAYUBI" key on Fujitsu OASYS.
DOM_VK_CIRCUMFLEX 0xA0 (160) Circumflex ("^") key.
DOM_VK_EXCLAMATION 0xA1 (161) Exclamation ("!") key.
DOM_VK_DOUBLE_QUOTE 0xA3 (162) Double quote (""") key.
DOM_VK_HASH 0xA3 (163) Hash ("#") key.
DOM_VK_DOLLAR 0xA4 (164) Dollar sign ("$") key.
DOM_VK_PERCENT 0xA5 (165) Percent ("%") key.
DOM_VK_AMPERSAND 0xA6 (166) Ampersand ("&") key.
DOM_VK_UNDERSCORE 0xA7 (167) Underscore ("_") key.
DOM_VK_OPEN_PAREN 0xA8 (168) Open parenthesis ("(") key.
DOM_VK_CLOSE_PAREN 0xA9 (169) Close parenthesis (")") key.
DOM_VK_ASTERISK 0xAA (170) Asterisk ("*") key.
DOM_VK_PLUS 0xAB (171) Plus ("+") key.
DOM_VK_PIPE 0xAC (172) Pipe ("|") key.
DOM_VK_HYPHEN_MINUS 0xAD (173) Hyphen-US/docs/Minus ("-") key.
DOM_VK_OPEN_CURLY_BRACKET 0xAE (174) Open curly bracket ("{") key.
DOM_VK_CLOSE_CURLY_BRACKET 0xAF (175) Close curly bracket ("}") key.
DOM_VK_TILDE 0xB0 (176) Tilde ("~") key.
DOM_VK_VOLUME_MUTE 0xB5 (181) Audio mute key.
DOM_VK_VOLUME_DOWN 0xB6 (182) Audio volume down key
DOM_VK_VOLUME_UP 0xB7 (183) Audio volume up key
DOM_VK_COMMA 0xBC (188) Comma (",") key.
DOM_VK_PERIOD 0xBE (190) Period (".") key.
DOM_VK_SLASH 0xBF (191) Slash ("/") key.
DOM_VK_BACK_QUOTE 0xC0 (192) Back tick ("`") key.
DOM_VK_OPEN_BRACKET 0xDB (219) Open square bracket ("[") key.
DOM_VK_BACK_SLASH 0xDC (220) Back slash ("\") key.
DOM_VK_CLOSE_BRACKET 0xDD (221) Close square bracket ("]") key.
DOM_VK_QUOTE 0xDE (222) Quote (''') key.
DOM_VK_META 0xE0 (224) Meta key on Linux, Command key on Mac.
DOM_VK_ALTGR 0xE1 (225) AltGr key (Level 3 Shift key or Level 5 Shift key) on Linux.
DOM_VK_WIN_ICO_HELP 0xE3 (227) An OEM specific key on Windows. This is (was?) used for Olivetti ICO keyboard.
DOM_VK_WIN_ICO_00 0xE4 (228) An OEM specific key on Windows. This is (was?) used for Olivetti ICO keyboard.
DOM_VK_WIN_ICO_CLEAR 0xE6 (230) An OEM specific key on Windows. This is (was?) used for Olivetti ICO keyboard.
DOM_VK_WIN_OEM_RESET 0xE9 (233) An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
DOM_VK_WIN_OEM_JUMP 0xEA (234) An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
DOM_VK_WIN_OEM_PA1 0xEB (235) An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
DOM_VK_WIN_OEM_PA2 0xEC (236) An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
DOM_VK_WIN_OEM_PA3 0xED (237) An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
DOM_VK_WIN_OEM_WSCTRL 0xEE (238) An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
DOM_VK_WIN_OEM_CUSEL 0xEF (239) An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
DOM_VK_WIN_OEM_ATTN 0xF0 (240) An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
DOM_VK_WIN_OEM_FINISH 0xF1 (241) An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
DOM_VK_WIN_OEM_COPY 0xF2 (242) An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
DOM_VK_WIN_OEM_AUTO 0xF3 (243) An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
DOM_VK_WIN_OEM_ENLW 0xF4 (244) An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
DOM_VK_WIN_OEM_BACKTAB 0xF5 (245) An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
DOM_VK_ATTN 0xF6 (246) Attn (Attention) key of IBM midrange computers, e.g., AS/400.
DOM_VK_CRSEL 0xF7 (247) CrSel (Cursor Selection) key of IBM 3270 keyboard layout.
DOM_VK_EXSEL 0xF8 (248) ExSel (Extend Selection) key of IBM 3270 keyboard layout.
DOM_VK_EREOF 0xF9 (249) Erase EOF key of IBM 3270 keyboard layout.
DOM_VK_PLAY 0xFA (250) Play key of IBM 3270 keyboard layout.
DOM_VK_ZOOM 0xFB (251) Zoom key.
DOM_VK_PA1 0xFD (253) PA1 key of IBM 3270 keyboard layout.
DOM_VK_WIN_OEM_CLEAR 0xFE (254) Clear key, but we're not sure the meaning difference from DOM_VK_CLEAR.

Windows 上的 OEM 特定密钥

在 Windows 上,虚拟密钥代码的某些值是为特定于 OEM 的密钥定义(保留)的。它们可用于非标准键盘上的特殊键。换句话说,一些值被两个或多个供应商(或硬件)用于不同的含义。

从 gecko 21(并且早于 15)开始,仅在 Windows 上的 keycode 属性上提供 OEM 特定的键值。因此,它们对于通常的 Web 应用程序不有用。它们仅对内部网应用程序或类似情况有用。

查看 MSDN 上的"Manufacturer-specific Virtual-Key Codes (Windows CE 5.0)"了解更多