<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> </head> <body class="hold-transition login-page"> <!-- 输入框 --> <input type="text" name="" value="" autofocus> </body> <script> window.onload = function(e){ code = ""; // 模拟输入的值 var lastTime,nextTime;// 记录两次键盘的时间 var lastCode,nextCode;// 两次键盘的键码值 document.onkeypress = function(e) {// 监听键盘事件 nextCode = e.which;// 当前的键码 nextTime = new Date().getTime();// 当前的毫秒数 console.log(nextCode,(nextTime - lastTime)); if(nextCode >= 48 && nextCode <= 57){// 只关注数字键 if(lastCode != null && lastTime != null && nextTime - lastTime <= 30) {// 相差30以内说明是机器刷卡 code += String.fromCharCode(lastCode);// 把键盘码返回为对应的值 } else {// 手动在输入 code = ""; } // 当前的键盘码和时间作为下一次的上一次 lastCode = nextCode; lastTime = nextTime; } if(nextCode == 13){//enter键代表刷卡结束 if(code && (nextTime - lastTime) <= 100){// 刷卡的卡号获取成功,且是机器触发的enter code += String.fromCharCode(lastCode); window.location.href="http://www.baidu.com"; } } } } </script> </html>
这篇文档对您是否有帮助?