有没有办法在浏览器中捕获所有键盘输入?

时间:2010-02-25 14:42:30

标签: php javascript html web-applications

有没有办法在浏览器中捕获所有键盘输入?我猜它必须是JavaScript。

我的问题是我有一个USB条形码扫描仪,电脑将其视为第二个键盘。我不希望用户必须单击输入框以输入条形码。但我也希望他们能够点击执行不在文本框中显示该输入的操作的快捷键。 f1-f12键也可以这种方式使用,还是为浏览器本身保留?

3 个答案:

答案 0 :(得分:3)

在大多数浏览器中,

keydown会触发大多数键(当然超过keypress)(某些,例如Safari 3.0,不会触发Shift等修改键的任何事件)和所有键在最近的浏览器中但是,功能键的行为不是一件好事。

以下页面是JavaScript中关键事件的绝佳参考:http://unixpapa.com/js/key.html

答案 1 :(得分:2)

您可以处理keypress对象的document事件,它将接收几乎所有键盘输入。

功能键的确切行为取决于浏览器。

答案 2 :(得分:2)

我之前做过这个。我用了一个计时器。在检测到第一个按键后,我给输入框焦点并启动计时器,如果在100毫秒内没有按下其他键,我提交表格。条形码扫描仪很快“打字”。

您也可以截取字符代码以检测F键。