条形码扫描仪仅在用户位于输入框时才会产生 "keypress" 事件。当用户不在输入框上时要听什么事件?
barcode scanner produces a "keypress" event only when the user is on an input box. What event to listen to when user is not on an input box?
上下文:
我正在开发一个使用条形码扫描仪设备的网络应用程序。用户扫描条形码,我将他们重定向到适当的页面。
问题:
我使用的扫描设备仅在用户位于输入框元素时触发 "keypress" 事件
window.addEventListener("keypress", function (event) {
// do something with the event
}
我希望能够在我的应用程序中的任何位置扫描条形码(即使我不在输入框中)。 (是的,我知道上面的代码会为每个字符触发,我有一个基于计时器的算法来知道它是条形码 reader 还是一个人在打字。)。
到目前为止 :
我查看了 this,所以我尝试用更通用的选择器(window 或文档)替换已接受的解决方案的选择器,但没有成功。是否有其他事件更适合这项任务?我愿意接受关于以其他方式进行的建议。
--编辑-- :
经过更多研究,我发现了 。问题是我的观点可能没有任何输入。纯文本
谢谢
这里是给可能想知道答案的人的:
出于某种原因,以下代码适用于我测试过的所有扫描仪:
document.body.addEventListener("keydown", function(e) {
// your handler here
}, true)
请注意,布尔值 true 也可以为 false。为什么它对 "window.addEventListener" 和 "document.addEventListener" 都不起作用?我不知道。
上下文:
我正在开发一个使用条形码扫描仪设备的网络应用程序。用户扫描条形码,我将他们重定向到适当的页面。
问题:
我使用的扫描设备仅在用户位于输入框元素时触发 "keypress" 事件
window.addEventListener("keypress", function (event) {
// do something with the event
}
我希望能够在我的应用程序中的任何位置扫描条形码(即使我不在输入框中)。 (是的,我知道上面的代码会为每个字符触发,我有一个基于计时器的算法来知道它是条形码 reader 还是一个人在打字。)。
到目前为止 :
我查看了 this,所以我尝试用更通用的选择器(window 或文档)替换已接受的解决方案的选择器,但没有成功。是否有其他事件更适合这项任务?我愿意接受关于以其他方式进行的建议。
--编辑-- :
经过更多研究,我发现了
谢谢
这里是给可能想知道答案的人的:
出于某种原因,以下代码适用于我测试过的所有扫描仪:
document.body.addEventListener("keydown", function(e) {
// your handler here
}, true)
请注意,布尔值 true 也可以为 false。为什么它对 "window.addEventListener" 和 "document.addEventListener" 都不起作用?我不知道。