假设 二维码地址为:https://www.xxx.com?id=SYM123456789

如下是扫码枪扫码后的效果:

需求:同一个二维码

1.通过微信扫码后进入H5页面;

2.web端使用扫码枪扫码后 我们只需要后12位(SYM123456789),并且这12位也可以通过手动输入;

怎么做呢?

第二个问题,如果不做任何处理的话,输入框聚焦后通过扫码枪扫码后的数据肯定是

和我们的预期效果不一致 我只需要后12位 SYM123456789

这里是我自己想到的一种解决方案>>>

html部分

<!-- 注:因为扫码枪扫码时 如果是中文的输入环境会有输入法的影响 所以在扫码枪环境下 将type切换到password可以屏蔽输入法 --><el-input  :value="sourceCode" @input="inputCode" :type="isScan?'password':'text'" placeholder="溯源码" />

js部分

<script>export default {data() {return {isScan: false,//是否为扫码枪录入sourceCode: ''}},created() {this.scanCode()},methods: {openCodeListDialog(row) {this.$refs.codeList.open(row)},/* 监听输入 判断通过isScan判断 */inputCode(v) {if (this.isScan) return;this.code = v},//处理扫码枪获取的数据dealScan(code) {this.isScan = falsethis.sourceCode = code.substring(code.length - 12);//取出后12位 },scanCode() {let lastTime = null;let nextTime = null;let code = '';let timer = ''//监听数据录入 通过判断输入数据的速度来判读是手动输入还是扫码枪录入,//这里有一个问题 当用户同时按下两个按键或者故意以高速录入数据时也会被判定为扫码枪输入document.onkeydown = e => {let keycode = e.keyCode || e.which || e.charCode;nextTime = new Date();if (keycode === 13) {if (lastTime && (nextTime - lastTime < 30)) {// 扫码枪this.dealScan(code)} else {// 键盘console.log('键盘输入')}code = '';lastTime = null;e.preventDefault();} else {if (!lastTime) {code = String.fromCharCode(keycode);} else {if (nextTime - lastTime < 30) {code += String.fromCharCode(keycode);item.isScan = true} else {code = '';item.isScan = false}}lastTime = nextTime;}//添加定时器 防止用户输入过快导致的误判 timer = setTimeout(_ => {clearTimeout(timer)this.isScan = false}, 100)};},},
}</script>

js web端扫码枪对接相关推荐

  1. vue 扫码枪 扫码墩 扫码器 中文输入影响 大小写影响 解决方案 js web端扫码枪对接 前端扫码枪 html扫码枪 vue扫码枪

    # vue3 扫马枪/扫马墩/扫码器 中文输入影响 大小写影响 解决方式 ## ps 你们觉得好用的话,能不能给我点个赞啊

  2. 论文研读-图可视化-NetV.js:Web端可视化工具库

    NetV.js:一个基于网络的用于大规模图和网络的高效可视化的库 1 论文概述 1.1 文章摘要 1.2 引言 1.3 文章脉络 2 相关工作 3 设计 3.1 设计要求 3.2 设计细节 3.2.1 ...

  3. JS - Web端的点九图

    顾名思义,就是跟安卓的点九图类似,将一张图片切割成9部分,固定四周四个角,其他部分可拉伸,这里仅作一个记录,具体可看官方文档 一.点九图 "点九"是andriod平台的应用软件开发 ...

  4. Web端访问微信小程序云数据库

    撰写背景: 用微信小程序云开发做了一个与web管理平台配套的微信小程序,Web端需要对接(访问)到云环境的云数据库. 开门见山: 在微信开发者工具里先把云开发控制台打开, 设置->权限设置-&g ...

  5. H5分享页面(1)——web端二次分享配置内容

    在H5分享页面中,如果用户进行了二次分享,需要进行一些配置才能进行使用,如微信二次分享就必须调用微信的JS-SDK来完成.下面对分享配置代码进行了封装: 存放路径:public/resources/j ...

  6. fastclick.js移动端WEB开发,click,touch,tap事件浅析

    建议看看:http://www.cnblogs.com/yexiaochai/p/3442220.html 一.click 和 tap 比较 两者都会在点击时触发,但是在手机WEB端,click会有 ...

  7. 使用ros3d.js实现web 端3D建图

    使用ros3d.js实现web 端3D建图 使用ros3d.js实现web 端3D建图 前端资源下载: ros3d地图与小车模型显示-机器学习文档类资源-CSDN下载

  8. 使用ros2d.js实现web端导航

    使用ros2d.js实现web端导航 前端资源下载: ros2d地图显示导航校准-机器学习文档类资源-CSDN下载

  9. 移动web端的react.js组件化方案

     背景: 随着互联网世界的兴起,web前端开发的方式越来越多,出现了很多种场景开发的前端架构体系,也对前端的要求日益增高,早已经不是靠一个JQuery.js来做前端页面的时代了,而今移动端变化最大,近 ...

  10. Node.js Web 模块(客户端 服务端实例)

    Node.js Web 模块 Web 应用架构 Client - 客户端,一般指浏览器,浏览器可以通过 HTTP 协议向服务器请求数据. Server - 服务端,一般指 Web 服务器,可以接收客户 ...

最新文章

  1. 量子CNN不存在梯度消失问题,物理学家已完成理论证明
  2. 寻找数组中的重复数字(java,可执行程序)
  3. 用VMWARE学习组网(四)
  4. gpio 树莓派3a+_树莓派4上市:性能飙升起售价依然是35美元
  5. 前端学习(2630):git安装包下载
  6. python print格式化输出类型_第一讲:Python print() 格式化输出
  7. 团队项目--设计类图
  8. 2万字详解,彻底讲透 全文搜索引擎 Elasticsearch
  9. 中国象棋源码c语言,中国象棋C语言源代码.doc
  10. 从零开始学前端:CSS背景颜色 --- 今天你学习了吗?(CSS:Day09)
  11. python开发聊天机器人_Python实现机器人聊天
  12. R语言数据挖掘1.9.1 机器学习方法
  13. php倒计时不停止,php – 当窗口不在焦点时停止的Javascript倒计时器
  14. 解决 /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /lib64/libstdc++.so.6)
  15. IDC:第三季度企业WLAN市场增长强劲
  16. 公客网beta阶段发布说明
  17. Matlab--利用plot函数绘画直线
  18. 论文笔记:针对盲化的 RSA算法的水平聚类侧信道攻击
  19. Drupal7学习笔记之Theme感觉非常好转来共享啊!
  20. 计算机DNS怎么配置,如何设置电脑的dns地址

热门文章

  1. wsimport指令
  2. 智能计算系统1 环境搭建
  3. java socket连接池_Java - Socket连接池
  4. 英文简历模板计算机专业,2016年计算机专业英文简历模板
  5. 鸟哥的linux私房菜 第五章
  6. MarkDown的下载、安装和基础使用
  7. 适合小型团队的在线文档管理系统【minDoc】
  8. 两轴插补速度怎么给定_两轴直线插补定位.doc
  9. 浙大翁凯老师Java课堂学习记录(第二周)
  10. 高通Camera驱动配置参考:dtsi、代码