首页 > 解决方案 > JS Key Event 为什么键码消失了?

问题描述

我正在做一些解析器(没关系......),我需要知道何时按下“特殊”键,例如“arrowdown”/“enter”/“alt”,通常看不到在文本中(因为文本中没有写这样的键),所以我选择了处理键盘事件。

解析器仅在从键盘输入时工作,但在从程序输入时,它停止工作(我的意思是当执行自动输入时,它停止工作。)。如果是自动输入,则 e.code 始终为空。

例子:

输出调试信息。到控制台,我写了这段代码

//my_field - This is the "input" field for the text type
my_field.onkeydown = Reading;

function Reading(e) {
console.log("TEST = " + e.key + " | " +  e.code);
...

我用键盘输入:“BCD”

它显示在控制台中

TEST = b | KeyB
TEST = c | KeyC
TEST = d | KeyD

我使用一个程序进行自动输入

TEST = b | 
TEST = c | 
TEST = d |

我怀疑这是因为程序模拟按下“虚拟键”,而不是“硬件扫描”。(我不确定)

问题是如何获得这个 e.code(在自动输入的情况下)?

标签: javascripteventskeyboardkey

解决方案


推荐阅读