通常のメモ帳でバーコード スキャナーを使用すると、次のようなコードがスキャンされます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|
すべてのキーコードがキーボードの値に変更されています。スキャンした 2 つのコードを比較すると、正しいバーコードがスキャンされた長いコードに含まれていることがわかります。すべての正しい文字は、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("|"));