如何触发/模拟条码扫描事件?

How to trigger / simulate barcode scan event?

我想解决我们产品中的一个错误,但我家里没有任何 Zebra 扫描仪。我们使用 Vue Barcode Scanner plugin 来扫描条形码。 据我所知,典型的条形码扫描看起来像 ~10 次带有数字的击键,然后是 TAB。所以我试着写了一个像

这样的脚本
"12345678900    ".split('').forEach(c => document.dispatchEvent(new KeyboardEvent('keydown', {key: c})))

Aaaaa 不,这不会触发扫描事件。有什么不同的想法,如何模拟扫描事件?

您链接的库在其最新迭代中明确指出专门侦听 keypress 事件,而不是 keydown。来自 README:

Update

  • ...
  • Listener for keypress instead of keydown (0.2)

Methods

init

Init method use for add event listener (keypress) for the scanner.

我通过仔细阅读源代码也证实了这一事实:

  • index.js:74keypress 事件上显式添加事件侦听器。
  • index.js:184-189 过滤所有 keydown 不是“控制字符”的事件