当我在普通记事本中使用条形码扫描仪时,它会扫描如下代码:2000000415369
. 当我在其中创建一个输入字段HTML
并将焦点放在该字段并扫描条形码时,它仍然输出正确的代码。
现在,当我创建一个 javascript 侦听器来捕获代码时,以确保在 javascript 中输入来自条形码扫描仪,keyPressevent.which
字符串输出的字符比上面描述的要多得多。我在控制台输出中得到了这个:
0|5|0|2|0|4|8|0|0|4|8|0|0|4|8|0|0|4|8|0|0|4|8|0|0|4|8|0|0|5|2|4|0|4|9|1|0|5|3|5|0|5|1|3|0|5|4|6|0|5|7|9|
每个键码都已更改为其键盘值。当您比较两个扫描代码时,您会看到正确的条形码包含在较长的扫描代码中。每个正确的字符由 3 个附加数字分隔:
050 2 048 0 048 0 048 0 048 0 048 0 048 0 052 4 049 1 053 5 051 3 054 6 057 9
有人知道这里发生了什么吗?我完全不知道为什么 keyPress 事件会捕获比输入字段更多的数字。我还使用普通键盘进行了测试,键入只会导致正确的按下字符输出到控制台。
下面是我用于捕获 keyPress 事件的 javascript 代码:
$(document.body).on('keypress',function(e){
aScannedEan.push(String.fromCharCode(e.which));
});
console.log(aScannedEan.join("|"));