JS 如何获取扫码枪输入数据

JS 如何获取扫码枪输入数据

1、扫码枪相当于键盘输入设备,输入一连串数字后加一个enter键。但在实际开发中需要区分是扫描枪输入还是键盘用户输入,区别在于扫码枪输入很快。

 let code = '';   let lastTime, nextTime;   let lastCode, nextCode;   window.document.onkeypress = (e) => {    if (window.event) { // IE     nextCode = e.keyCode;    } else if (e.which) { // Netscape/Firefox/Opera     nextCode = e.which;    }    if (nextCode === 13) {     if (code.length  30) { // 当扫码前有keypress事件时,防止首字缺失     code = e.key;    } else if (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    } 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=96&&nextCode2000){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 = $.trim(code)      if (code.length == 13) {        this.$message('A类条码:' + code);      } else if (code.length == 23) {this.$message('B类条码:' + code);      } else if (code.length == 0) {this.$message('请输入条码');      } else{      this.$message('条码不合法:' + code);      }      //键入回车务必清空code值    this.code = ''    return false;    }  }}

登录后复制

总结

到此这篇关于js 获取扫码枪输入数据的文章就介绍到这了,更多相关js 获取扫码枪输入数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

推荐教程:《JS教程》

以上就是JS 如何获取扫码枪输入数据的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2727588.html

(0)
上一篇 2025年3月7日 23:46:41
下一篇 2025年2月19日 21:48:19

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JavaScript中Number()方法的两种用法

    js中,调用number()主要有两种方式,一是作为一个 function 将任意类型的数据转换成数值,二是作为一个类,通过new 生成一个数值对象。 其中第一种方式更常用。 用法一:function Number(value) 登录后复制…

    编程技术 2025年3月7日
    200
  • 两分钟了解jQuery与JavaScript、JS 三者间的区别

    两分钟了解jQuery与JavaScript、JS 三者间的区别 javascript、jquery、js这三者经常出现在我们的生活中,大家知道它们有什么相同和什么不同吗?下面我们就用两分钟来了解以下它们吧。 JavaScript:是浏览器…

    2025年3月7日
    200
  • JavaScript的重构技巧

    John Au-Yeung来源:medium译者:前端小智 点赞再看,养成习惯 本文 github https://github.com/qq44924588… 上已经收录,更多往期高赞文章的分类,也整理了很多我的文档,和教程资…

    编程技术 2025年3月7日
    200
  • 如何实现AJAX请求?

    如何实现ajax请求? 1、创建XMLHttpRequest实例; var xhr;if(window.XMLHttpRequest) {  //ie7+,firefox,chrome,safari,opera  xhr = new XML…

    2025年3月7日
    200
  • JavaScript 中 setTimeout 函数怎么用?

    在JavaScript中setTimeout函数的作用是在指定的毫秒数后调用函数或计算表达式,其语法为“setTimeout(func,ms)”,返回值是一个ID,可以将这个ID传递给“clearTimeout”函数来取消执行。 浏览器支持…

    2025年3月7日
    200
  • JS 闭包的作用是什么?

    JS 闭包的作用就是在A执行完并返回后,使得Javascript的垃圾回收机制不会收回A所占用的资源,因为A的内部函数B的执行需要依赖A中的变量,如果不使用闭包,B函数执行所依赖的变量会造成全局污染。 闭包本质 集合 S 是闭集当且仅当 C…

    2025年3月7日
    200
  • 同源策略是什么意思

    同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。 同源策略是一种约定,它是浏览器最核心也最基本的安全功…

    2025年3月7日
    200
  • 引起内存泄漏的操作有哪些

    引起内存泄漏的操作有:1、setTimeout的第一个参数使用字符串而非函数的话,会引发内存泄漏;2、闭包、控制台日志、循环【在两个对象彼此引用且彼此保留时,就会产生一个循环】,会引发内存泄漏。 内存泄漏指任何对象在您不再拥有或需要它之后仍…

    2025年3月7日
    200
  • 学习js中!和!!的区别及用法

    在看别人的js代码时发现了这么一个用法: if (!!item.value) {param[item.name] = item.value;} 登录后复制 好久没研究js,所以赶紧补充了一下,还发现了一个特别好玩的东西。 推荐学习教程:ja…

    2025年3月7日
    200
  • 了解JS中!/+/-/~ function() {/*…*/}()是什么意思

    自执行匿名函数: 常见格式:(function() { /* code */ })();解释:包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿名函数的参数。作用:可以…

    2025年3月7日
    200

发表回复

登录后才能评论