一起看看j获取扫码枪输入数据的方法

2025-04-28 16:15:02 6
  • 收藏
  • 管理
    1、扫码枪相当于键盘输入设备,输入一连串数字后加一个enter键。但在实际开发中需要区分是扫描枪输入还是键盘用户输入,区别在于扫码枪输入很快。 复制 let code =; let lastTime, nextTime; let lastCode, nextCode; window.document.onkeypress =(e)=>{if(window.event){// IE nextCode = e.keyCode;}elseif(e.which){// Netscape/Firefox/Opera nextCode = e.which;}if(nextCode ===13){if(code.length <3)return;// 手动输入的时间不会让code的长度大于2,所以这里只会对扫码枪有 console.log(code);// 获取到扫码枪输入的内容,做别的操作 code =; lastCode =; lastTime =;return;} nextTime =newDate().getTime();if(!lastTime &&!lastCode){ code = e.key;}if(lastCode && lastTime && nextTime - lastTime >30){// 当扫码前有keypress事件时,防止首字缺失 code = e.key;}elseif(lastCode && lastTime){ code = e.key;} lastCode = nextCode; lastTime = nextTime;} PS:下面看下js获取USB扫码枪数据的代码 前言 找了很多相关的教程不太好用,汲取各家之长总结精简了一下 原理 扫码枪扫描到的条形码每一位会触发一次onkeydown事件比如扫描条码位‘1234567890的条形码,会连续执行10次onkeydown事件条码扫描到最后一位,会直接触发Enter 需要引入jQuery,我这里用的是vue 复制window.onload =(e)=>{ document.onkeydown =(e)=>{ let nextCode,nextTime =; let lastTime =this.lastTime; let code =this.code;if(window.event){// IE nextCode = e.keyCode }elseif(e.which){// Netscape/Firefox/Opera nextCode = e.which } nextTime =newDate().getTime();//字母上方 数字键0-9 对应键码值 48-57; 数字键盘 数字键0-9 对应键码值 96-105if((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 =newDate().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;// 键入Enterif(e.which ==13){// 判断 code 长度(这里就获取到条码值了,以下业务自由发挥) code = $.trim(code)if(code.length ==13){this.$message(A类条码: code);}elseif(code.length ==23){this.$message(B类条码: code);}elseif(code.length ==0){this.$message(请输入条码);}else{this.$message(条码不合法: code);}//键入回车务必清空code值this.code =returnfalse;}}} 相关学习推荐:javascript视频教程
    上一页:一起看看pythonpygame简单画板实现代码实例 下一页:一起看看PHP执行普通hell命令流程
    全部评论(0)