js获取USB扫码枪数据

这段代码展示了如何在网页中监听键盘事件,特别是当使用USB扫码枪时,捕获扫描到的条形码数据。当按下Enter键或条码长度达到23位时,会触发特定的处理逻辑。通过比较连续按键的时间差,确保条码数据的准确性,并在适当的时候清除已输入的条码数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

window.onload = (e)=> {
document.onkeydown = (e)=> {
let nextCode,nextTime = ‘’;
let lastTime = this.lastTime;
let code = this.code;
if (window.event) {// IE
nextCode = e.keyCode
} else if (e.which) {// Netscape/Firefox/Opera
nextCode = e.which
}
nextTime = new Date().getTime();
//字母上方 数字键0-9 对应键码值 48-57; 数字键盘 数字键0-9 对应键码值 96-105
if((nextCode>=48&&nextCode<=57) || (nextCode>=96&&nextCode<=105)){
let codes = {‘48’:48,‘49’:49,‘50’:50,‘51’:51,‘52’:52,‘53’:53,‘54’:54,‘55’:55,‘56’:56,‘57’:57,
‘96’:48,‘97’:49,‘98’:50,‘99’:51,‘100’:52,‘101’:53,‘102’:54,‘103’:55,‘104’:56,‘105’:57
};
nextCode = codes[nextCode];
nextTime = new Date().getTime();
}
// 第二次输入延迟两秒,删除之前的数据重新计算
if(nextTime && lastTime && nextTime-lastTime>2000){
code = String.fromCharCode(nextCode);
}else{
code += String.fromCharCode(nextCode)
}
// 保存数据
this.nextCode = nextCode;
this.lastTime = nextTime;
this.code = code;
// 键入Enter
if(e.which == 13) {
// 判断 code 长度(这里就获取到条码值了,以下业务自由发挥)
code = KaTeX parse error: Expected '}', got 'EOF' at end of input: … this.message(‘A类条码:’ + code);
} else if (code.length == 23) {
this.KaTeX parse error: Expected 'EOF', got '}' at position 38: …); }̲ else if (code.…message(‘请输入条码’);
} else{
this.$message(‘条码不合法:’ + code);
}
//键入回车务必清空code值
this.code = ‘’
return false;
}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值