欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js读取扫码枪输入的数据

程序员文章站 2022-06-14 22:05:44
...

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

我们可以通过监听输入间隔时间,来判断到底是键盘输入还是扫描输入。

扫码枪输入的时间间隔一般在10毫秒以内,物理键盘输入要远大于这个数值,通常为80毫秒以上。因此,当输入间隔时间小于30毫秒时,判断为扫码枪输入,其余情况判断为键盘输入。

<script type="text/javascript">

window.onload = function (e) {
        var code = "";
        var lastTime, nextTime;
        var lastCode, nextCode;

        document.onkeypress = function (e) {
            nextCode = e.which;
            nextTime = new Date().getTime();

            if (lastCode != null && lastTime != null && nextTime - lastTime <= 30) {//扫码枪
                code += String.fromCharCode(lastCode);
            } else if (lastCode != null && lastTime != null && nextTime - lastTime > 100) {//键盘输入
                code = '';
            }
            lastCode = nextCode;
            lastTime = nextTime;
        }
        this.onkeypress = function (e) {
            // 键入Enter
            // 判断 code 长度(这里就获取到条码值了,以下业务*发挥)
            if (e.which == 13) {
                alert(code)
                code = "";
            }
        }
    }

</script>

原文地址:https://www.jb51.net/article/188377.htm