首页 > 解决方案 > 为什么 ^ 的 JS 键盘代码返回死机?

问题描述

我正在做一个简单的 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);
});

标签: javascriptdom-events

解决方案


键盘事件whichkeyCode都已被弃用并且已经存在很多年了。您应该使用key哪种现代方式来准确确定在所有键盘和语言中按下的键值。

addEventListener('keydown', function (event) {
  console.log(event.key);
});

从上面的链接

如果 KeyboardEvent 表示按下死键,则键值必须为“Dead”。


推荐阅读