如何添加Javascript侦听器以捕获从蓝牙条码扫描器到iPad的输入?

我在iPad上用javascript记录击键时遇到问题。 以下脚本适用于Chrome和Safari,但不适用于iPad Safari。 蓝牙条码扫描器发送12位数作为击键,然后发送返回字符。 有没有人有任何想法?

我想你需要一台iPad试试这个:)

谢谢,马克

$(document).ready(function(){ $(document).keypress(function(e){ if( e.keyCode == 13){ alert($('#barcode').attr('value')); $('#barcode').attr('value',''); } else{ var key = String.fromCharCode(e.which); var new_val = $('#barcode').attr('value') + key; $('#barcode').attr('value',new_val); } }); }); 

Safari for iOS不会触发不是表单组件的DOM元素上的键盘事件。 这包括通常用于捕获页面上任何位置的击键的文档和正文。

触发页面文档或正文上的击键事件的唯一方法是在输入或文本区域中触发它。 在这种情况下,事件将正确地“冒泡”到正文和文档。

但是,这可能是一个问题,因为iOS for Safari不允许我们从javascript中提供元素焦点。

目前,我们正在使用一种解决方案,用户必须在开始第一次扫描之前单击输入字段,然后将输入字段移出屏幕外但仍保持焦点。

如果有人有更好的解决方案,请分享。

你好尝试使用这只适用于“Prototype”javascript框架。 此脚本仅适用于EAN13或EAN8,但如果您想使用12位数,只需更改“if(result.lenght == 13)”。