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

时间:2018-08-16 21:04:29

标签: javascript jquery web-applications barcode dom-events

上下文

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

问题

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

window.addEventListener("keypress", function (event) {
    // do something with the event
}

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

到目前为止

我查看了this,所以我尝试用更通用的选择器(窗口或文档)替换被接受的解决方案的选择器,而没有运气。还有其他事件更适合此任务吗?我愿意接受其他方法的建议。

-编辑-

经过更多研究,我发现this。问题是我的视图可能没有任何输入。只是纯文本

谢谢

1 个答案:

答案 0 :(得分:1)

这里是给那些可能想知道答案的人的

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

document.body.addEventListener("keydown", function(e) {
    // your handler here
}, true)

请注意,布尔值true也可以是false。为什么对于“ window.addEventListener”或“ document.addEventListener”都无效?我不知道。