Javascript 为什么^JS键盘代码返回死?
我正在做一个简单的JS脚本,它获取所有键盘事件并在屏幕上显示它们。每次我在键盘上尝试符号^(Alt Gr+^),JS都会返回一个死代码 为什么会发生这种情况?我该如何解决Javascript 为什么^JS键盘代码返回死?,javascript,dom-events,Javascript,Dom Events,我正在做一个简单的JS脚本,它获取所有键盘事件并在屏幕上显示它们。每次我在键盘上尝试符号^(Alt Gr+^),JS都会返回一个死代码 为什么会发生这种情况?我该如何解决 editor.addEventListener('keydown', function (e) { var keyNum = event.which || event.keyCode; switch(keyNum) { case 9: buffer += "\t&qu
editor.addEventListener('keydown', function (e) {
var keyNum = event.which || event.keyCode;
switch(keyNum) {
case 9:
buffer += "\t";
break;
case 13:
buffer += "\n";
break;
default:
if (window.event) { // IE
key = e.key;
} else if (e.which){ // Netscape/Firefox/Opera
key = e.which;
}
buffer += key;
break;
}
renderText(buffer);
});
键盘事件和已弃用多年。您应该使用现代的方法来确定在所有键盘和语言中按下的键值
addEventListener('keydown',函数(事件){
console.log(event.key);
});代码>在美国或英国键盘上键入{Shift}6以获取^
在其他语言中,您必须键入不同的内容,例如,对于德语键盘,只需键入^/°(左上角的键)即可
e.key = "Dead"
e.code = "Backquote"
e.keyCode = 220
因此,如果不使用特殊的大小写(也许还可以猜测用户使用的是哪种语言的键盘),解释“Dead”似乎很困难。分享一些代码以帮助解决问题。如果我将您的编辑器
作为输入
标记,我可以看到每个按键。在美国键盘上键入插入符号(ShiftShift
+6
=^
)可以正常工作,并检测到Shift
和^
。也许我无法重现这个问题,因为我没有AltGr键?但在按下另一个键之前,您仍然无法确定是否按下了alt grave?你只能知道一个死键被按下了?