js获取USB扫码枪数据的方法

 更新时间:2021年09月28日 16:46:21   作者:zlxls  
这篇文章主要为大家详细介绍了js获取USB扫码枪数据的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了js获取USB扫码枪数据的具体过程,供大家参考,具体内容如下

废话不多说,直接上代码,这个方法避免了 首字缺失,字符串乱码等等问题,特别好用,记录一下

中间的Ajax可直接调用登录功能,实现自动登录

说明:输入框需要获得焦点,这个是必须的,其次为了防止回车触发手动登录,需要添加οnkeypress="if(event.keyCode==13) return false;"这个操作,这个在回车的时候,输入框焦点不会丢失,除非手动切换焦点,或者调用focus();方法

<div class="form-group">
 <label for="inputUsernameEmail">账号</label>
 <input type="text" placeholder="请输入账号" name="username" id="loginname" class="form-control" autofocus onkeypress="if(event.keyCode==13) return false;">
</div>

代码:

<script>
  window.onload = (e)=> {
   this.start = new Date().getTime()
   let code = ''
   let lastTime, nextTime
   let lastCode, nextCode
   let that = this
   window.document.onkeypress = function (e) {
    if (window.event) { // IE
     nextCode = e.keyCode
    } else if (e.which) { // Netscape/Firefox/Opera
     nextCode = e.which
    }
    console.log('nextCode', nextCode)
    if (e.which === 13 || window.event === 13) {
     var deviceCode = code;
     console.log(code)
     console.log('扫码结束')
     console.timeEnd()
     code = ''
     lastCode = ''
     lastTime = ''
     $.ajax({
      cache: true,
      type: "POST",
      url: rootPath + "/admin/login",
      data: {code: deviceCode, type: 1},
      async: false,
      error: function (request) {
       $("#loginname").val("");
       $.modal.alertError("系统错误");
      },
      success: function (data) {
       $("#loginname").val("");
       if (data.code == 200) {
        location.href = rootPath + '/admin/index';
       } else {
        $.modal.alertError(data.msg);
       }
      }
     });
    }
    nextTime = new Date().getTime()
    if (!lastTime && !lastCode) {
     console.log('扫码开始。。。')
     code += e.key
    }
    if (lastCode && lastTime && nextTime - lastTime > 500) { // 当扫码前有keypress事件时,防止首字缺失
     console.log('防止首字缺失。。。')
     code = e.key
    } else if (lastCode && lastTime) {
     console.log('扫码中。。。')
     code += e.key
    }
    lastCode = nextCode
    lastTime = nextTime
   }
  }
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 详解javascript表单的Ajax提交插件的使用

    详解javascript表单的Ajax提交插件的使用

    本文主要介绍了javascript表单的Ajax提交插件的使用,具有一定的参考价值。下面跟着小编一起来看下吧
    2016-12-12
  • 详解JavaScript闭包的优缺点和作用

    详解JavaScript闭包的优缺点和作用

    闭包是指在 JavaScript 中,内部函数可以访问其外部函数作用域中的变量,即使外部函数已经执行完毕,这种特性被称为闭包,本文将给大家介绍一下JavaScript闭包的优缺点和作用,需要的朋友可以参考下
    2023-09-09
  • ESLint和Jest中使用esm示例详解

    ESLint和Jest中使用esm示例详解

    这篇文章主要为大家介绍了ESLint和Jest中使用esm示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • js中string和number类型互转换技巧(分享)

    js中string和number类型互转换技巧(分享)

    下面小编就为大家带来一篇js中string和number类型互转换技巧(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • JavaScript中双符号的运算详解

    JavaScript中双符号的运算详解

    这篇文章主要给大家介绍了JavaScript中双符号的运算,其中包括双波浪号和双感叹号的运算,文中给出了详细的示例代码,需要的朋友们可以参考借鉴,下面来一起看看吧。
    2017-03-03
  • 在JavaScript中终止forEach循环的三种方式

    在JavaScript中终止forEach循环的三种方式

    如何终止forEach循环这个问题估计会难倒一部分同学,甚至会有人反问,forEach循环在JavaScript中能终止吗?本文小编给大家介绍了三种方式可以终止forEach循环,需要的朋友可以参考下
    2023-11-11
  • 微信小程序如何获取群聊的openGid以及名称详解

    微信小程序如何获取群聊的openGid以及名称详解

    这篇文章主要介绍了小程序如何获取群聊的openGid以及名称详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • 详解JavaScript的回调函数

    详解JavaScript的回调函数

    这篇文章主要介绍了JavaScript的回调函数,帮助大家正确理解和使用 JavaScript中的回调函数,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • Javascript学习笔记-详解in运算符

    Javascript学习笔记-详解in运算符

    in运算符是javascript语言中比较特殊的一个,可以单独使用作为判断运算符,也常被用于for...in循环中遍历对象属性
    2011-09-09
  • Js可拖拽放大的层拖动特效实现方法

    Js可拖拽放大的层拖动特效实现方法

    这篇文章主要介绍了Js可拖拽放大的层拖动特效实现方法,涉及javascript操作DOM元素及css样式的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02

最新评论