javascript - 如何隐藏软键盘并保持输入焦点

标签 javascript android google-chrome mobile barcode-scanner

我有一个运行 Android 4.4.4 的条码扫描器(honeywell ct50)的页面, 当输入文本框处于焦点上时,软键盘会自动弹出。 有什么办法可以隐藏吗? 我已阅读建议,主要是使输入失去焦点或只读, 但我需要将注意力集中在输入上以读取条形码。

我试过了 1. 在onfocus 事件中执行event.preventDefault() 不起作用。 2. 获取document.keypress() 上的条码,帖子中的解决方案如下,但我的扫描仪没有任何结果。 javascript - hide mobile default keyboard but keep input field active

欢迎提出任何想法。

最佳答案

老话题,但这是至少适用于 android 6 和 7 的解决方案:

yourInput = document.getElementById('yourInputElement');
yourInput.readOnly = true;
yourInput.focus();
setTimeout(function(){document.getElementById('yourInputElement').readOnly = false;}, 50);

您将输入放在焦点之前的 readOnly = true 中。
键盘不会出现。
然后您将输入放回 readOnly = false 但不是立即放回。
因此,您可以在不弹出键盘的情况下使用扫描仪。

关于javascript - 如何隐藏软键盘并保持输入焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48635501/

相关文章:

javascript - 在 jQuery slider 上方显示编号间隔

javascript - 使用隐藏链接 url 的 __doPostBack 进行抓取

javascript - React useReducer Hook 触发两次/如何将 props 传递给 reducer?

android - 如何获取 fragment 的所有子/内部/嵌套 fragment ?

javascript - Mac 上的 Google Chrome 本地存储

javascript - 使用 javascript 屏幕延迟抓取网站

java - 降低功耗

java - 我无法使用我创建的内部类中的外部类中的数据

android - css :focus not working in iOS Safari/Chrome, 在 Android/PC Chrome 上正常

java - JxBrowser 占用大量内存