为了账号安全,请及时绑定邮箱和手机立即绑定

js如何判断扫码枪的输入?

js如何判断扫码枪的输入?

慕妹3146593 2019-02-18 20:17:52
扫码枪输入的时间间隔一般在8毫秒,偶尔会有16毫秒,而键盘输入一般都在80毫秒以上,因此我设定当输入间隔小于等于30毫秒时,判断为扫码枪输入,但是这段代码会丢失扫码枪扫描的第一个字符,如何判断第一个字符是扫码枪输入还是手动输入的?
查看完整描述

1 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

不需要记录 lastCode 啊,只需要在时间超出范围的时候重置 lastTime 和 code 就行了。如果码枪会输入回车,那就在 keyCode === 13 的时候使用 code 就行。这时候如果 code 的值多于1个字符就一定是码枪输入的,没有值就是手工输入的……如果需要记录手工输入的值,可以使用另一个变量比如 manualCode 来记录,在回车的时候如果 code 无值就从 manualCode 中截取后面若干字符出来,再适时把 manualCode 清空就好。


示意(只有判断时间和拼接 code):


let start = new Date();

let code = "";

$("#test").on("keydown", (e) => {

    now = new Date();

  if (now - start > 50) {

      start = now;

    code = String.fromCharCode(e.keyCode);

  } else {

      code += String.fromCharCode(e.keyCode);

    console.log(code);

  }

});


查看完整回答
反对 回复 2019-02-27
  • 1 回答
  • 0 关注
  • 1840 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号