有没有办法检索键盘事件中按下的按键的显示值

问题描述 投票:0回答:1

我想让用户按下组合键并以可读的方式显示输入。 如果按下例如 altP 我想显示

alt P

我知道如何处理修饰键本身,但我找不到“普通”键的解决方案。我尝试使用

event.code
属性,在这种情况下它给了我
KeyP
event.key
event.which
属性不合适,因为修饰键会将值更改为例如
π
)。
但我必须将
event.code
的值映射到
P
,特别是对于具有特殊字符的键,因为它们在不同的布局上可能具有非常不同的值。

是否有一个属性可以检索键的显示值(在没有修饰符的情况下打印在物理键盘上的值!)或是否有一个库可以将

event.code
映射到最常见键盘布局的显示值? (例如,对于美国布局,
event.code = "Quote"
映射到
Quote
/
"
,对于德国布局,映射到
Ä

window.onload = function () {
  document.addEventListener("keydown", function(){
    document.getElementById("keydownResult").innerText = event.code + " pressed. Value is " + event.key + ".";
    // Procduces "KeyP pressed. Value is π." on macOS with german layout.
  });
};
<p id="keydownResult"></p>

javascript keyboard-events
1个回答
0
投票

除了做,

const keyCode = event.code.replace('Key', '').replace('Digit', '');

我无法找到更好的解决方案,但它现在一直有效

© www.soinside.com 2019 - 2024. All rights reserved.