我正在做一个简单的JS脚本,该脚本将接收所有键盘事件并在屏幕上显示它们。每次我在键盘JS上尝试符号^(Alt Gr + ^)时,都会返回无效代码。
为什么会这样,我该如何解决?
谢谢
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);
});
答案 0 :(得分:1)
不推荐使用键盘事件which
和keyCode
,并且已经使用了很多年。您应该使用key
,这是一种现代方法,可以准确确定在所有键盘和语言中按下的键值。
addEventListener('keydown', function (event) {
console.log(event.key);
});
从上面的链接
如果KeyboardEvent表示按下了某个死键,则该键的值必须为“死键”。
答案 1 :(得分:-1)
在例如美国或英国键盘上输入 {Shift}6 来获得 ^ 时很好用,它可以正常工作。
在其他语言中,您必须输入不同的内容,例如德语键盘仅提供 ^/°(左上角的键)
e.key = "Dead"
e.code = "Backquote"
e.keyCode = 220
所以如果没有特殊的大小写(并且可能猜测您的用户使用哪种语言键盘),解释“死”似乎很困难