120 個按鍵的 code 與 keyCode
KeyboardEvent 給出的那些值。code 是鍵盤上的實體位置,不隨配置變化;key 是當下敲出來的字元,會變。
code 與 key 的區別
code 是鍵盤上的實體位置,韓文鍵盤還是法文鍵盤都一樣。key 是當下敲出來的字元,會變——同一個位置可能是 a、A 或 ㅁ。問「按了哪個位置」用 code,問「輸入了什麼」用 key。
keyCode 已從標準中移除。新程式請用 code 或 key,這裡的數字用來讀舊程式。
字母26
位置固定為 KeyA。哪怕鍵盤上敲出的是韓文 ㅁ,code 依然是 KeyA。
KeyA"a"65KeyB"b"66KeyC"c"67KeyD"d"68KeyE"e"69KeyF"f"70KeyG"g"71KeyH"h"72KeyI"i"73KeyJ"j"74KeyK"k"75KeyL"l"76KeyM"m"77KeyN"n"78KeyO"o"79KeyP"p"80KeyQ"q"81KeyR"r"82KeyS"s"83KeyT"t"84KeyU"u"85KeyV"v"86KeyW"w"87KeyX"x"88KeyY"y"89KeyZ"z"90
數字10
數字列。它們的 keyCode 與數字鍵盤上同樣的數字不同。
Digit0"0"48Digit1"1"49Digit2"2"50Digit3"3"51Digit4"4"52Digit5"5"53Digit6"6"54Digit7"7"55Digit8"8"56Digit9"9"57
符號12
keyCode 在各家瀏覽器裡分道揚鑣的,就是這一片。
Semicolon";"186Equal"="187Comma","188Minus"-"189Period"."190Slash"/"191Backquote"`"192BracketLeft"["219Backslash"\"220BracketRight"]"221Quote"'"222IntlBackslash"\"226
數字鍵盤20
location 是 3,這正是它和數字列的區別。
Numpad0"0"96Numpad1"1"97Numpad2"2"98Numpad3"3"99Numpad4"4"100Numpad5"5"101Numpad6"6"102Numpad7"7"103Numpad8"8"104Numpad9"9"105NumpadAdd"+"107NumpadSubtract"-"109NumpadMultiply"*"106NumpadDivide"/"111NumpadDecimal"."110NumpadEnterEnter13NumpadEqual"="12NumpadComma","194NumpadParenLeft"("0NumpadParenRight")"0
功能鍵24
F1 是 112、F2 是 113,依序排下去。
F1F1112F2F2113F3F3114F4F4115F5F5116F6F6117F7F7118F8F8119F9F9120F10F10121F11F11122F12F12123F13F13124F14F14125F15F15126F16F16127F17F17128F18F18129F19F19130F20F20131F21F21132F22F22133F23F23134F24F24135
移動8
不打字,只移動游標。
ArrowUpArrowUp38ArrowDownArrowDown40ArrowLeftArrowLeft37ArrowRightArrowRight39HomeHome36EndEnd35PageUpPageUp33PageDownPageDown34
編輯16
刪除、插入、換行。
EnterEnter13TabTab9Space"Space"32BackspaceBackspace8DeleteDelete46InsertInsert45UndoUndo0CutCut0CopyCopy0PastePaste0AgainAgain0FindFind0HelpHelp47SelectSelect41OpenOpen43PropsProps0
修飾鍵9
單按沒有作用,要壓在別的鍵上。左右共用一個 keyCode。
ShiftLeftShift16ShiftRightShift16ControlLeftControl17ControlRightControl17AltLeftAlt18AltRightAlt18MetaLeftMeta91MetaRightMeta92FnFn0
鎖定鍵3
按一下,狀態就一直保持。
CapsLockCapsLock20NumLockNumLock144ScrollLockScrollLock145
系統24
處理視窗和螢幕的鍵。
EscapeEscape27PrintScreenPrintScreen44PausePause19ContextMenuContextMenu93AudioVolumeMuteAudioVolumeMute173AudioVolumeDownAudioVolumeDown174AudioVolumeUpAudioVolumeUp175MediaTrackNextMediaTrackNext176MediaTrackPreviousMediaTrackPrevious177MediaStopMediaStop178MediaPlayPauseMediaPlayPause179LaunchMailLaunchMail180LaunchApp2LaunchApp2183LaunchApp1LaunchApp1182BrowserBackBrowserBack166BrowserForwardBrowserForward167BrowserRefreshBrowserRefresh168BrowserStopBrowserStop169BrowserSearchBrowserSearch170BrowserFavoritesBrowserFavorites171BrowserHomeBrowserHome172PowerPower0SleepSleep95WakeUpWakeUp0
輸入法7
切換輸入法的鍵——韓/英、漢字、日語轉換都在這裡。
Lang1HangulMode21Lang2HanjaMode25ConvertConvert28NonConvertNonConvert29KanaModeKanaMode21IntlRo"\"193IntlYen"\"255
怎麼看這一頁
- code 是位置,key 是敲出來的字元。做快速鍵要按 code 比較。
- keyCode 已廢棄,只在讀舊程式時用。
- 左右 Shift 的 keyCode 相同,靠 location 區分。
- 數字列的 1 和數字鍵盤的 1 是兩個鍵——49 和 97。
常見問題
Q該用 code 還是 key?
要抓位置(例如快速鍵)用 code,要知道輸入了什麼用 key。換了鍵盤配置,code 依然不變。
Q為什麼不建議用 keyCode?
它已從標準移除,而且各瀏覽器給的值並不一致,符號鍵尤其如此。
QEnter 的鍵碼是多少?
keyCode 是 13,code 是 Enter。數字鍵盤上的 Enter,code 是 NumpadEnter,keyCode 同樣是 13。
Q怎麼區分左右 Shift?
靠 keyCode 分不出來,兩個都是 16。看 code(ShiftLeft、ShiftRight)或 location(1、2)。
Q韓文鍵盤上的 code 一樣嗎?
一樣。按下打出 ㅁ 的那個位置,code 仍然是 KeyA——因為 code 指的是位置。