只有当用户在输入框上时,条码扫描器才会产生“按键”事件。当用户不在输入框上时要监听什么事件?

Obj*_*ate 6 javascript jquery web-applications barcode dom-events

上下文

我正在开发一个使用条形码扫描仪设备的 Web 应用程序。用户扫描条形码,我将它们重定向到相应的页面。

问题

我使用的扫描设备仅在用户位于输入框元素中时才会触发“按键”事件

window.addEventListener("keypress", function (event) {
    // do something with the event
}
Run Code Online (Sandbox Code Playgroud)

我希望能够从我的应用程序中的任何地方扫描条形码(即使我不在输入框中)。(是的,我知道上面的代码会为每个字符触发,我有一个基于计时器的算法来知道它是条形码阅读器还是打字的人。)。

到目前为止

我看了这个,所以我尝试用更通用的选择器(窗口或文档)替换接受的解决方案的选择器,但没有运气。是否有其他事件更适合此任务?我愿意接受以另一种方式做的建议。

--编辑--

经过更多研究,我遇到了这个。问题是我的观点可能没有任何输入。只是纯文本

谢谢

Obj*_*ate 5

以下是为那些可能想知道答案的人提供的:

由于某种原因,以下代码适用于我测试过的所有扫描仪:

document.body.addEventListener("keydown", function(e) {
    // your handler here
}, true)
Run Code Online (Sandbox Code Playgroud)

请注意,布尔值 true 也可以为 false。为什么它不适用于“window.addEventListener”和“document.addEventListener”?我不知道。


归档时间:

查看次数:

3328 次

最近记录:

7 年 前