如果您像我一样在 2020 年阅读此问题并尝试将其与 typescript 一起使用,您可能知道 typescript 会告诉您这一点e.keyCode
或被贬低!e.which
因此,您可以使用e.key
它来为您提供正在按下的键的确切字符串,就像它会为您Enter
提供按下回车按钮或它会为您ctrl
提供按下控制 btn 一样,所以希望您明白这一点!
此外,如果您想编写一个函数将其转换为获取关键代码的旧方法,您可以使用以下内容:
switch (theChar) {
case "Backspace":
return 8;
case "Tab":
return 9;
case "Enter":
return 13;
case "Alt":
return 18;
case "Escape":
return 27;
case "Delete":
return 127;
case "Minus":
return 45;
case "Plus":
return 43;
case "Equal":
return 61;
case "Delete":
return 127;
case "BracketRight":
return 93;
case "BracketLeft":
return 91;
case "Backslash":
return 92;
case "Slash":
return 47;
case "Semicolon":
return 59;
case "Colon":
return 58;
case "Comma":
return 44;
case "Period":
return 46;
case "Space":
return 32;
case "Quote":
return 34;
case "Backquote":
return 39;
//there are also "Numpad....." variants
case "Unidentified":
alert("handle the 'Unidentified' if you want to!");
}
这里还有许多其他可能的字符值,
但是,AFAIK,它们没有 unicode 代码点,例如:
switch (theKey) {
case "AltLeft":
case "CapsLock":
case "ControlRight":
case "Fn":
case "NumpadDecimal":
...
event.which 可能会为它们输出一些数字,但在浏览器/机器之间并不一致,它们可能与其他代码点重叠。