Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法用Javascript监听控制键(ASCII<;10)事件?_Javascript_Events_Keyboard_Ascii - Fatal编程技术网

有没有办法用Javascript监听控制键(ASCII<;10)事件?

有没有办法用Javascript监听控制键(ASCII<;10)事件?,javascript,events,keyboard,ascii,Javascript,Events,Keyboard,Ascii,我的问题不是关于“Ctrl”键,而是任何键盘上都不存在的不可打印键,但当扫描仪在HID模式下读取条形码时,这些键可用于为条形码添加前缀。 目前,我可以监听很多字符的按键事件,但当我的条形码扫描器配置为使用ASCII字符作为条形码前缀时,如SOH(ASCII代码1)或STX(2)、ETX(3)、EOT(4)… 我没有任何事件的痕迹… 也许,Chrome、Firefox……不在乎这些…… 我要测试的代码非常简单,我只是记录在文档上触发的keydown事件 编辑 我明确指出,问题在于javascrip

我的问题不是关于“Ctrl”键,而是任何键盘上都不存在的不可打印键,但当扫描仪在HID模式下读取条形码时,这些键可用于为条形码添加前缀。
目前,我可以监听很多字符的按键事件,但当我的条形码扫描器配置为使用ASCII字符作为条形码前缀时,如SOH(ASCII代码1)或STX(2)、ETX(3)、EOT(4)…
我没有任何事件的痕迹…
也许,Chrome、Firefox……不在乎这些……
我要测试的代码非常简单,我只是记录在文档上触发的keydown事件

编辑

我明确指出,问题在于javascript在navigator(Edge、Chrome、Safari、Firefox…)上运行,而不是在node中运行。我必须在网页上收听条形码扫描器。

您可以在linux机器上运行
xev
命令来测试条形码扫描器是否工作(idk关于其他操作系统),如果xev输出某些内容,浏览器应触发键盘事件。如果xev未输出,则扫描仪无法按预期工作。

不确定它们是否直接存在于事件对象属性中,但您可以尝试使用..读取输入字符串的值(使用输入事件进行实时扫描)?您的问题不在低级代码的某个位置。事件不依赖于keycode,您可以分发/捕获一个空的KeyboardEvent。如果没有看到任何事件-则没有。@Teemu:输入事件仅在输入中。。。使用条形码扫描器的目的是在任何输入之外收听和读取条形码。条形码扫描仪的工作原理类似于物理键盘,但可以发送特定的键作为前缀或后缀。我们的目标是了解接收到的字符是由条形码扫描仪而不是键盘发送的。专业条形码扫描仪可以配置特定的控制键。我希望这是清楚的,我的英语还远远不够完美^^@SvenLiivak:你怎么知道什么时候事件是无事件发射的???我做了一些测试,并监听DOM文档上的所有keydown事件。当我的条形码扫描仪配置为使用ASCII代码1作为所有条形码的前缀时,我只接收前缀之后的事件。我认为导航器不会发出带有这些ASCII码的事件,但我无法在Google上找到信息……是的,我意识到输入不会在文档上触发。但是那些“专业扫描器”的程序是用JS编写的吗?您可以尝试输入,只需在扫描前关注输入,并检查是否可以从值中读取非打印内容。也许你可以进一步发展这个想法。。。只需补充说明,我使用过的所有基于网络的扫描仪(不包括移动应用程序等)都已将扫描的代码输入到输入元素中。