我们为一个 PDA 应用程序选择了 Opera Mobile,一切都很顺利,直到我们遇到关于将扫描输入到其中一个文本字段的问题。
解决此问题的一般方法是在执行扫描操作时将一个文本框设置为具有焦点。
不幸的是,Opera 有意无意地不支持这一点。当您进入屏幕时焦点无处可去,并且无法明确设置它。接下来最糟糕的是,您也无法检测到按键事件,这使得几乎不可能从扫描操作中获取输入事件。
我不知道为什么 Opera,最受好评的移动浏览器之一,不支持这个。
这些是同一个问题被一遍又一遍问的地方,
http://dev.opera.com/forums/topic/255066
http://dev.opera.com/forums/topic/650332
http://dev.opera.com/forums/topic/384311
我们也在 Opera Dev 论坛上发帖,似乎他们(到目前为止)对此没有解决方案。如果有人尝试过解决方法,我们很想听听解决方案。
请注意 here 中的解决方案在 Opera Mobile 10 中不起作用。我还没有在建议的 9.X 版本中尝试过。
最佳答案
我自己找的。这是如何做到的。
在表单中有一个隐藏按钮
input type="button" id='myHiddenButton' visible='false' onclick="javascript:doFocus();" width='1px' style="display:none"
有一个 javascript 在隐藏按钮的点击事件上被触发。
function doFocus() { var focusElementId = "MyTextBox" var textBox = document.getElementById(focusElementId); textBox.focus(); }
在文档末尾使用 javascript 单击按钮
function clickButton() { document.getElementById('myHiddenButton').click(); } setTimeout("clickButton()", 100);
关于javascript - 使用 Opera Mobile 10 扫描输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5776484/