如何检测支撑行程

How to detect brace stroke

我正在寻找检测牙套的通用解决方案:{}。 我有一个 azety 键盘,我需要使用 ALT GR 笔画来键入它们,它们分别位于 4 和 + 键上。

因为它在 qwerty 键盘上不一样,可能还有其他配置, 我不知道这些字符是否只是根据 keyup 侦听器返回的事件给出的信息输入的,我只知道 4 已被按下(Chrome 没有事件让我知道 alt gr 已被推送)。

然而,如果我使用 keypress 事件,我会得到正确的代码。 但是 keyup 对我来说更可取。

var element = document.getElementById('textbox');

element.onkeyup = function(evt){    
    console.log("keyup");    
    console.log(evt.which);
};


element.onkeypress = function(evt){    
    console.log("keypress");    
    console.log(evt.which);
  
};
<textarea id="textbox"></textarea>

使用该代码,我在输入 { 时得到此输出:

keypress
123 // { key code
keyup
52 // 4 key code
keyup
225 //alt gr key code

那么,是否有独立于键盘配置的解决方案来检测大括号?

AltGr 与 Ctrl-Alt 相同,您可以在检查时询问修饰符。

你必须知道同一个键盘可以改变每个键的位置的配置。我有一个 Spanish/English windows 配置,我在同一天多次更改布局(这会更改 { 和 } 的位置)。

您必须使用按键