6

我们为一个 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 论坛上发帖,看来他们(到目前为止)对此没有解决方案。如果有人尝试过解决方法,我们很想听听解决方案。

请注意,此处的解决方案不适用于 Opera Mobile 10。我没有在提议的 9.X 版本中尝试过。

4

1 回答 1

5

我自己找到了。这是如何做到的。

在表单中有一个隐藏按钮

输入类型="button" id='myHiddenButton' visible='false' onclick="javascript:doFocus();" 宽度='1px' 样式=“显示:无”

有一个 javascript 在隐藏按钮的单击事件上被触发。

     function doFocus() {
         var focusElementId = "MyTextBox"
         var textBox = document.getElementById(focusElementId);
         textBox.focus();
     }

在文档末尾使用 javascript 单击按钮

     function clickButton() {
         document.getElementById('myHiddenButton').click();
     }

     setTimeout("clickButton()", 100);
于 2011-04-28T08:29:30.500 回答