Javascript 为什么^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

我正在做一个简单的JS脚本,它获取所有键盘事件并在屏幕上显示它们。每次我在键盘上尝试符号^(Alt Gr+^),JS都会返回一个死代码

为什么会发生这种情况?我该如何解决

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”似乎很困难。

分享一些代码以帮助解决问题。如果我将您的
编辑器
作为
输入
标记,我可以看到每个按键。在美国键盘上键入插入符号(Shift
Shift
+
6
=
^
)可以正常工作,并检测到Shift
^
。也许我无法重现这个问题,因为我没有AltGr键?但在按下另一个键之前,您仍然无法确定是否按下了alt grave?你只能知道一个死键被按下了?