js獲取掃碼槍輸入

場景:
掃碼槍掃碼,獲取信息,js代碼如何獲取掃描信息呢?

原理:
掃碼槍輸入會觸發(fā)鍵盤輸入事件。
掃碼槍輸入的時間間隔一般在8毫秒,偶爾會有16毫秒,而鍵盤輸入一般都在80毫秒以上。

        var keycode = "";
        var lastTime=null;
        var nextTime=null;
        var lastCode=null;
        var nextCode=null;

        document.onkeydown=function(e){
            //兼容性處理
            if(window.event){
                nextCode = e.keyCode
            } else if(e.which){
                nextCode = e.which
            }
            
            //獲取當前時間
            nextTime = new Date().getTime();
              
            if(nextCode==13 && keycode!= "" && nextTime - lastTime <= 30){//回車字符
                console.log(keycode);
                keycode = "";
                lastCode = null;
                lastTime = null;
            }else{//此處可以增加限制nextCode的種類例如數(shù)字
                if(lastCode == null && lastTime == null){//初始字母
                    keycode = String.fromCharCode(nextCode);
                }else if(lastCode != null && lastTime != null && nextTime - lastTime <= 30){
                    keycode += String.fromCharCode(nextCode);
                }else{//手動輸入
                    keycode = "";
                    lastCode = null;
                    lastTime = null;
                }
                lastCode = nextCode;
                lastTime = nextTime;
            }
        }
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容