Тема: Сканер QR коду. Проблема з вводом
Якщо сканувати QR код у звичайне input поле, код сканується правильно, але мені потрібно отримувати події onkeydown і оброблювати код під час сканування.
Так ReadingQRHead функція підписана на подію onkeydown
inputField.onkeydown = ReadingQRHead;
В консолі виводжу подію натискання
function ReadingQRHead(e) {
console.log("e.key = " + e.key + " | e.code = " + e.code + " | keyCode = " + e.keyCode);
Результат:
Сканую у input поле, з'являються такі значення (вони правильні)
BCD0011UCT UA78...
Отримую подію натискання клавіш
23 e.key = | e.code = Space | keyCode = 32
e.key = Shift | e.code = ShiftLeft | keyCode = 16
e.key = D | e.code = KeyD | keyCode = 68
e.key = 7 | e.code = Numpad7 | keyCode = 103
2 e.key = | e.code = Space | keyCode = 32
e.key = 2 | e.code = Numpad2 | keyCode = 98
e.key = 0 | e.code = Numpad0 | keyCode = 96
e.key = 1 | e.code = Numpad1 | keyCode = 97
e.key = 9 | e.code = Numpad9 | keyCode = 105
e.key = , | e.code = Comma | keyCode = 188
e.key = | e.code = Space | keyCode = 32
e.key = . | e.code = Period | keyCode = 190
2 e.key = | e.code = Space | keyCode = 32
e.key = 1 | e.code = Numpad1 | keyCode = 97
e.key = , | e.code = Comma | keyCode = 188
e.key = | e.code = Space | keyCode = 32
e.key = . | e.code = Period | keyCode = 190
e.key = | e.code = Space | keyCode = 32
e.key = 2 | e.code = Numpad2 | keyCode = 98
e.key = 4 | e.code = Numpad4 | keyCode = 100
e.key = , | e.code = Comma | keyCode = 188
2 e.key = | e.code = Space | keyCode = 32
2 e.key = . | e.code = Period | keyCode = 190
3 e.key = | e.code = Space | keyCode = 32
Все що збігається це 23 пробіла.
В чому проблема ? Як отримати кожну клавішу яка була натиснута ? Або як заблокувати можливість відкриття нової вкладки комбінацією клавш (тоді можна буде брати значення з input.value) ?