上下文:
我正在使用条形码扫描仪设备的Web应用程序上工作。用户扫描条形码,我将它们重定向到相应的页面。
问题:
我正在使用的扫描设备仅在用户位于输入框元素中时才触发“按键”事件
window.addEventListener("keypress", function (event) {
// do something with the event
}
我希望能够从应用程序中的任何位置扫描条形码(即使我不在输入框中)。 (是的,我知道上面的代码会为每个字符触发,我有一个基于计时器的算法来知道它是条形码读取器还是输入者。)
到目前为止:
我查看了this,所以我尝试用更通用的选择器(窗口或文档)替换被接受的解决方案的选择器,而没有运气。还有其他事件更适合此任务吗?我愿意接受其他方法的建议。
-编辑-:
经过更多研究,我发现this。问题是我的视图可能没有任何输入。只是纯文本
谢谢
答案 0 :(得分:1)
这里是给那些可能想知道答案的人的
出于某种原因,以下代码可用于我测试过的所有扫描仪:
document.body.addEventListener("keydown", function(e) {
// your handler here
}, true)
请注意,布尔值true也可以是false。为什么对于“ window.addEventListener”或“ document.addEventListener”都无效?我不知道。