KeyboardEvent:keyCode 屬性

已棄用:此特性不再推薦。雖然某些瀏覽器可能仍然支援它,但它可能已經從相關的網路標準中刪除,可能正在刪除過程中,或者可能僅為相容性目的而保留。請避免使用它,如果可能,請更新現有程式碼;請參閱本頁底部的相容性表格以指導您的決策。請注意,此特性可能隨時停止工作。

已廢棄的 KeyboardEvent.keyCode 只讀屬性表示一個系統和實現相關的數字程式碼,用於識別按鍵未修改的值。

這通常是與按鍵對應的十進位制 ASCII (RFC 20) 或 Windows 1252 程式碼。如果無法識別按鍵,此值為 0

如果可能,應避免使用此屬性;它已被廢棄一段時間。相反,您應該使用 KeyboardEvent.code(用於物理按鍵)或 KeyboardEvent.key(用於按鍵對映的字元)。如果您的目標瀏覽器非常舊,請檢查這兩個屬性的相容性。

注意:Web 開發人員在處理 keydownkeyup 事件時,不應使用 keyCode 屬性來處理可列印字元。如上所述,keyCode 屬性對於可列印字元並不實用,尤其是那些按住 ShiftAlt 鍵輸入的字元。

keyCode 的值

標準位置的可列印按鍵

在標準位置按壓或釋放可列印按鍵導致的按鍵事件值在不同瀏覽器之間不相容。

IE 只將原生虛擬按鍵程式碼值作為 KeyboardEvent.keyCode 暴露。

Google Chrome、Chromium 和 Safari 必須根據輸入的字元來決定值。如果輸入的字元可以透過美國鍵盤佈局輸入,它們會使用美國鍵盤佈局上的 keyCode 值。

Firefox 從按鍵輸入的 ASCII 字元獲取 keyCode 值,即使有 Shift 修飾鍵或 ASCII 相容的鍵盤佈局。詳情請參閱以下規則:

  1. 如果系統是 Windows 且按下按鍵的原生按鍵程式碼指示該鍵是 a-z 或 0-9,則為其使用按鍵程式碼。
  2. 如果系統是 Mac 且按下按鍵的原生按鍵程式碼指示該鍵是 0-9,則為其使用按鍵程式碼。
  3. 如果按下的鍵在沒有修飾鍵的情況下輸入 ASCII 字母或數字字元,則為其使用按鍵程式碼。
  4. 如果按下的鍵在按下 Shift 鍵修飾符的情況下輸入 ASCII 字母或數字字元,則為其使用按鍵程式碼。
  5. 如果按下的鍵在沒有修飾鍵的情況下輸入不同的 ASCII 字元,則為其使用按鍵程式碼。
  6. 如果按下的鍵在按下 Shift 鍵修飾符的情況下輸入不同的 ASCII 字元,則為其使用按鍵程式碼。
  7. 否則,即按下的鍵輸入 Unicode 字元
    1. 如果鍵盤佈局是 ASCII 相容的(即可以輸入 ASCII 字母),則使用 0 或根據以下附加規則進行計算。
    2. 否則,即鍵盤佈局不是 ASCII 相容的,使用環境中優先順序最高的 ASCII 相容鍵盤佈局
      1. 如果備用鍵盤佈局上按下的鍵輸入 ASCII 字母或數字字元,則為其使用按鍵程式碼。
      2. 否則,使用 0 或根據以下附加規則進行計算。

Gecko 儘可能地(當達到上述列表中的第 7.1 或 7.2 點時)根據以下規則設定標點符號鍵的 keyCode

警告:這些新的附加規則的目的是讓其鍵盤佈局將 Unicode 字元對映到美國鍵盤佈局中的標點符號鍵的使用者,能夠使用僅支援 Firefox 且帶有 ASCII 相容鍵盤佈局或僅帶有美國鍵盤佈局的 Web 應用程式。否則,新對映的 keyCode 值可能與其他按鍵衝突。例如,如果當前鍵盤佈局是俄語,則 "Period" 鍵和 "Slash" 鍵的 keyCode 值都為 190 (KeyEvent.DOM_VK_PERIOD)。如果您需要區分這些按鍵,但又不想自己支援世界上所有的鍵盤佈局,您應該使用 KeyboardEvent.code

  1. 如果執行 macOS 或 Linux

    1. 如果活動鍵盤佈局不是 ASCII 相容的,並且存在備用 ASCII 相容鍵盤佈局。

      1. 如果備用 ASCII 相容鍵盤佈局僅透過未修改的鍵產生 ASCII 字元,則使用該字元的 keyCode
      2. 如果備用 ASCII 相容鍵盤佈局在按下 Shift 鍵時產生 ASCII 字元,則使用該 Shift 字元的 keyCode
      3. 否則,當美國鍵盤佈局處於活動狀態時,使用該鍵產生的 ASCII 字元的 keyCode
    2. 否則,當美國鍵盤佈局處於活動狀態時,使用該鍵產生的 ASCII 字元的 keyCode

  2. 如果執行在 Windows 上

    1. 當美國鍵盤佈局處於活動狀態時,使用對映到相同 Windows 虛擬鍵程式碼的鍵所產生的 ASCII 字元的 keyCode 值。
每個瀏覽器中由標準位置可列印鍵導致的 keydown 事件的 keyCode 值
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
每個瀏覽器由標準位置可列印鍵(美國佈局中的標點符號)引起的 keydown 事件的 keyCode 值
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)
美國 日語 希臘語 美國 日語 希臘語 美國 日語 希臘語 美國 日語 希臘語 美國 日語 希臘語 美國 日語 希臘語 美國 日語 希臘語 美國 日語 希臘語
"逗號" 0xBC (188) 0xBC (188) 0xBC (188) 0xBC (188) 0xBC (188) 0xBC (188) 0xBC (188) 0xBC (188)
"逗號"Shift
"句號" 0xBE (190) 0xBE (190) 0xBE (190) 0xBE (190) 0xBE (190) 0xBE (190) 0xBE (190) 0xBE (190)
"句號"Shift
"分號" 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)⚠️
"分號"Shift 0xBB (187)⚠️ [1] 0xBB (187)⚠️ 0xBB (187)⚠️ [1]
"引號" 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)
"引號" 和 Shift 0xDE (222)⚠️ [1] 0x38 (56)⚠️ 0xDE (222)⚠️ [1]
"左方括號" 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)
"左方括號"Shift 0xC0 (192)⚠️ [1] 0xC0 (192)⚠️ 0xC0 (192)⚠️ [1]
"右方括號" 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)
"右方括號"Shift
"反引號" 0xC0 (192) ❌ 不適用 0xC0 (192) 0xC0 (192) ❌ 不適用 0xC0 (192) 0xC0 (192) 0xC0 (192) 0xF4 (244)⚠️ 0xC0 (192) 0xC0 (192) 0xC0 (192) ❌ 不適用 0xC0 (192) 0xC0 (192) 0xC0 (192) 0x00 (0) 0xC0 (192)
"反引號"Shift
"反斜槓" 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)
"反斜槓"Shift
"減號" 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)
"減號"Shift 0xBB (187)⚠️ [1] 0xBB (187)⚠️ 0xBD (189) 0xBB (187)⚠️ [1] 0xBD (189)
"等號" 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)
"等號"Shift 0xC0 (192)⚠️ [1] 0xC0 (192)⚠️ 0xBB (187) 0xC0 (192)⚠️ [1] 0xBB (187)
"國際漫遊鍵" 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)
"國際漫遊鍵"Shift
"國際日元鍵" 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)⚠️
"國際日元鍵"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)

不可列印的鍵(功能鍵)

每個瀏覽器由修飾鍵引起的 keydown 事件的 keyCode 值
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)
當它是 "AltGraph" 鍵時的 "AltRight" [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] 當日文鍵盤佈局處於活動狀態時,不按 Shift 鍵而按 CapsLock 鍵會產生 0xF0 (240)。該鍵作為標籤為 "英數"字母數字 鍵工作。

[3] 當日文鍵盤佈局處於活動狀態時,不按 Shift 鍵而按 "CapsLock" 鍵會產生 0x00 (0)。該鍵作為標籤為 "英數""字母數字" 鍵工作。

每個瀏覽器由非列印鍵引起的 keydown 事件的 keyCode 值
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)
"空格鍵" 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" ❌ 不適用 ❌ 不適用 0x2D (45)
⚠️ [2]
0x2F (47)
⚠️ [3]
0x2D (45)
⚠️ [2]
❌ 不適用 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 事件,其 keyCodecharCode0x10 (16),但文字實際上並未輸入到編輯器中。

[2] 在 Mac 上,Help 鍵對映到 PC 鍵盤的 Insert 鍵。這些 keyCode 值與 Insert 鍵的 keyCode 值相同。

[3] 在 Fedora 20 上測試。

[4] 僅觸發 keyup 事件。

[5] PC 的 PrintScreenScrollLockPause 分別對映到 Mac 的 F13F14F15。Chrome 和 Safari 將它們對映到與 Mac 鍵相同的 keyCode 值。

[6] Pause 鍵與 Control 鍵結合會生成 0x03 (3)

每個瀏覽器由功能鍵引起的 keydown 事件的 keyCode 值
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) 不適用 [4] 0x82 (130) 0x82 (130) 0x82 (130) 0x00 (0)⚠️ [3]
"F20" 0x83 (131) 0x83 (131) 0x83 (131) 不適用 [4] 0xE5 (229)⚠️ [5] 0x83 (131) 0x00 (0)⚠️ 不適用 [6]
"F21" 0x84 (132) 0x84 (132) 0x00 (0)⚠️ [7] 不適用 [4] 0x00 (0)⚠️ [7] 0x84 (132) 不適用 [8] 不適用 [6]
"F22" 0x85 (133) 0x85 (133) 0x00 (0)⚠️ [7] 不適用 [4] 0x00 (0)⚠️ [7] 0x85 (133) 不適用 [8] 不適用 [6]
"F23" 0x86 (134) 0x86 (134) 0x00 (0)⚠️ [7] 不適用 [4] 0x00 (0)⚠️ [7] 0x86 (134) 不適用 [8] 不適用 [6]
"F24" 0x87 (135) 0x87 (135) 0x00 (0)⚠️ [7] 不適用 [4] 0x00 (0)⚠️ [7] 0x87 (135) 不適用 [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 上,PrintScreenScrollLockPause 分別對映到 Mac 的 F13F14F15。Firefox 為它們設定了與 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 鍵事件。

數字鍵盤鍵

每個瀏覽器在 NumLock 狀態下由數字鍵盤鍵導致的 keydown 事件的 keyCode 值
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)
"數字鍵盤0" 0x60 (96) 0x60 (96) 0x60 (96) 0x60 (96) 0x60 (96) 0x60 (96) 0x60 (96) 0x60 (96)
"數字鍵盤1" 0x61 (97) 0x61 (97) 0x61 (97) 0x61 (97) 0x61 (97) 0x61 (97) 0x61 (97) 0x61 (97)
"數字鍵盤2" 0x62 (98) 0x62 (98) 0x62 (98) 0x62 (98) 0x62 (98) 0x62 (98) 0x62 (98) 0x62 (98)
"數字鍵盤3" 0x63 (99) 0x63 (99) 0x63 (99) 0x63 (99) 0x63 (99) 0x63 (99) 0x63 (99) 0x63 (99)
"數字鍵盤4" 0x64 (100) 0x64 (100) 0x64 (100) 0x64 (100) 0x64 (100) 0x64 (100) 0x64 (100) 0x64 (100)
"數字鍵盤5" 0x65 (101) 0x65 (101) 0x65 (101) 0x65 (101) 0x65 (101) 0x65 (101) 0x65 (101) 0x65 (101)
"數字鍵盤6" 0x66 (102) 0x66 (102) 0x66 (102) 0x66 (102) 0x66 (102) 0x66 (102) 0x66 (102) 0x66 (102)
"數字鍵盤7" 0x67 (103) 0x67 (103) 0x67 (103) 0x67 (103) 0x67 (103) 0x67 (103) 0x67 (103) 0x67 (103)
"數字鍵盤8" 0x68 (104) 0x68 (104) 0x68 (104) 0x68 (104) 0x68 (104) 0x68 (104) 0x68 (104) 0x68 (104)
"數字鍵盤9" 0x69 (105) 0x69 (105) 0x69 (105) 0x69 (105) 0x69 (105) 0x69 (105) 0x69 (105) 0x69 (105)
"數字鍵盤加號" 0x6B (107) 0x6B (107) 0x6B (107) 0x6B (107) 0x6B (107) 0x6B (107) 0x6B (107) 0x6B (107)
"數字鍵盤逗號" 輸入 "," 0xC2 (194) 0xC2 (194) 0xBC (188)⚠️ 始終輸入 "." 0xBC (188)⚠️ 0xC2 (194) 0x6C (108)⚠️ 始終輸入 "."
"數字鍵盤逗號" 輸入 "." 或空字串 0xC2 (194) 0xC2 (194) 0xBE (190)⚠️ 0x6E (110)⚠️ 0xBE (190)⚠️ 0xC2 (194) 0x6C (108)⚠️ 0x6E (110)⚠️
"數字鍵盤小數點" 輸入 "." 0x6E (110) 0x6E (110) 0x6E (110) 0x6E (110) 0x6E (110) 0x6E (110) 0x6E (110) 0x6E (110)
"數字鍵盤小數點" 輸入 "," 0x6E (110) 0x6E (110) 0x6E (110) 0x6C (108)⚠️ 0x6E (110) 0x6E (110) 0x6E (110) 0x6C (108)⚠️
"數字鍵盤除號" 0x6F (111) 0x6F (111) 0x6F (111) 0x6F (111) 0x6F (111) 0x6F (111) 0x6F (111) 0x6F (111)
"數字鍵盤迴車" 0x0D (13) 0x0D (13) 0x0D (13) 0x0D (13) 0x0D (13) 0x0D (13) 0x0D (13) 0x0D (13)
"數字鍵盤等號" 0x0C (12) 0x0C (12) 0xBB (187)⚠️ 0xBB (187)⚠️ 0xBB (187)⚠️ 0x0C (12) 0x3D (61)⚠️ 0x3D (61)⚠️
"數字鍵盤乘號" 0x6A (106) 0x6A (106) 0x6A (106) 0x6A (106) 0x6A (106) 0x6A (106) 0x6A (106) 0x6A (106)
"數字鍵盤減號" 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" 鍵工作。

每個瀏覽器在沒有 NumLock 狀態下由數字鍵盤鍵導致的 keydown 事件的 keyCode 值
KeyboardEvent.code IE 11 Google Chrome 34 Chromium 34 Gecko 29
Windows Windows Linux (Ubuntu 14.04) Windows Linux (Ubuntu 14.04)
"數字鍵盤0" ("插入") 0x2D (45) 0x2D (45) 0x2D (45) 0x2D (45) 0x2D (45)
"數字鍵盤1" ("結束") 0x23 (35) 0x23 (35) 0x23 (35) 0x23 (35) 0x23 (35)
"數字鍵盤2" ("向下箭頭") 0x28 (40) 0x28 (40) 0x28 (40) 0x28 (40) 0x28 (40)
"數字鍵盤3" ("PageDown") 0x22 (34) 0x22 (34) 0x22 (34) 0x22 (34) 0x22 (34)
"數字鍵盤4" ("向左箭頭") 0x25 (37) 0x25 (37) 0x25 (37) 0x25 (37) 0x25 (37)
"數字鍵盤5" 0x0C (12) 0x0C (12) 0x0C (12) 0x0C (12) 0x0C (12)
"數字鍵盤6" ("向右箭頭") 0x27 (39) 0x27 (39) 0x27 (39) 0x27 (39) 0x27 (39)
"數字鍵盤7" ("Home") 0x24 (36) 0x24 (36) 0x24 (36) 0x24 (36) 0x24 (36)
"數字鍵盤8" ("向上箭頭") 0x26 (38) 0x26 (38) 0x26 (38) 0x26 (38) 0x26 (38)
"數字鍵盤9" ("PageUp") 0x21 (33) 0x21 (33) 0x21 (33) 0x21 (33) 0x21 (33)
"數字鍵盤小數點" ("刪除") 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) 主鍵盤上的回車/Enter 鍵。
DOM_VK_ENTER 0x0E (14) 保留,但未使用。 已廢棄 (已刪除,參見 Firefox bug 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 中添加了對該鍵碼的 Linux 支援。
DOM_VK_HANGUL 0x15 (21) Gecko 4.0 中添加了對該鍵碼的 Linux 支援。
DOM_VK_EISU 0x 16 (22) 日語 Mac 鍵盤上的“英數”鍵。
DOM_VK_JUNJA 0x17 (23) Gecko 4.0 中添加了對該鍵碼的 Linux 支援。
DOM_VK_FINAL 0x18 (24) Gecko 4.0 中添加了對該鍵碼的 Linux 支援。
DOM_VK_HANJA 0x19 (25) Gecko 4.0 中添加了對該鍵碼的 Linux 支援。
DOM_VK_KANJI 0x19 (25) Gecko 4.0 中添加了對該鍵碼的 Linux 支援。
DOM_VK_ESCAPE 0x1B (27) Escape 鍵。
DOM_VK_CONVERT 0x1C (28) Gecko 4.0 中添加了對該鍵碼的 Linux 支援。
DOM_VK_NONCONVERT 0x1D (29) Gecko 4.0 中添加了對該鍵碼的 Linux 支援。
DOM_VK_ACCEPT 0x1E (30) Gecko 4.0 中添加了對該鍵碼的 Linux 支援。
DOM_VK_MODECHANGE 0x1F (31) Gecko 4.0 中添加了對該鍵碼的 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 中添加了對該鍵碼的 Linux 支援。
DOM_VK_PRINT 0x2A (42) Gecko 4.0 中添加了對該鍵碼的 Linux 支援。
DOM_VK_EXECUTE 0x2B (43) Gecko 4.0 中添加了對該鍵碼的 Linux 支援。
DOM_VK_PRINTSCREEN 0x2C (44) Print Screen 鍵。
DOM_VK_INSERT 0x2D (45) 插入鍵。
DOM_VK_DELETE 0x2E (46) 刪除鍵。
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 徽標鍵。或 Linux 上的 Super 或 Hyper 鍵。
DOM_VK_CONTEXT_MENU 0x5D (93) 開啟上下文選單鍵。
DOM_VK_SLEEP 0x5F (95) Gecko 4.0 中添加了對該鍵碼的 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) 尖號(“^”)鍵。
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) 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(注意)鍵。
DOM_VK_CRSEL 0xF7 (247) IBM 3270 鍵盤佈局的 CrSel(游標選擇)鍵。
DOM_VK_EXSEL 0xF8 (248) IBM 3270 鍵盤佈局的 ExSel(擴充套件選擇)鍵。
DOM_VK_EREOF 0xF9 (249) IBM 3270 鍵盤佈局的 Erase EOF 鍵。
DOM_VK_PLAY 0xFA (250) IBM 3270 鍵盤佈局的播放鍵。
DOM_VK_ZOOM 0xFB (251) 縮放鍵。
DOM_VK_PA1 0xFD (253) IBM 3270 鍵盤佈局的 PA1 鍵。
DOM_VK_WIN_OEM_CLEAR 0xFE (254) 清除鍵,但我們不確定與 DOM_VK_CLEAR 的含義區別。

示例

js
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();
  }
});

規範

規範
UI 事件
# dom-keyboardevent-keycode

瀏覽器相容性

Windows 上的 OEM 特定鍵

在 Windows 上,虛擬鍵碼的一些值是為 OEM 特定鍵定義(保留)的。它們可用於非標準鍵盤上的特殊鍵。換句話說,有些值被兩個或更多供應商(或硬體)用於不同的含義。

從 Gecko 21(以及早於 15 的版本)開始,OEM 特定鍵值僅在 Windows 上的 keyCode 屬性中可用。因此,它們對於通常的 Web 應用程式沒有用。它們僅適用於內部網應用程式或類似情況。

有關詳細資訊,請參閱 MSDN 中“製造商特定虛擬鍵碼 (Windows CE 5.0)”。