Javascript 使用Opera Mobile 10扫描输入

Javascript 使用Opera Mobile 10扫描输入,javascript,opera-mobile,Javascript,Opera Mobile,我们选择了Opera Mobile作为一个PDA应用程序,一切都进行得很顺利,直到我们遇到了一个关于将扫描输入带到其中一个文本字段的问题 处理此问题的一般方法是,在执行扫描操作时,将一个文本框设置为具有焦点 不幸的是,Opera有意无意地不支持这一点。当您进入屏幕时,焦点不在任何位置,并且无法明确设置焦点。接下来最糟糕的是,您也无法检测按键事件,这使得几乎不可能从扫描操作中获取输入事件 我不知道为什么Opera,最受欢迎的移动浏览器之一,不支持这个 在这些地方,同样的问题被一遍又一遍地问

我们选择了Opera Mobile作为一个PDA应用程序,一切都进行得很顺利,直到我们遇到了一个关于将扫描输入带到其中一个文本字段的问题

处理此问题的一般方法是,在执行扫描操作时,将一个文本框设置为具有焦点

不幸的是,Opera有意无意地不支持这一点。当您进入屏幕时,焦点不在任何位置,并且无法明确设置焦点。接下来最糟糕的是,您也无法检测按键事件,这使得几乎不可能从扫描操作中获取输入事件

我不知道为什么Opera,最受欢迎的移动浏览器之一,不支持这个

在这些地方,同样的问题被一遍又一遍地问

我们也在Opera开发论坛上发表了文章,似乎他们(到目前为止)还没有解决这个问题的方法。如果有人尝试过解决方法,我们将有兴趣听到解决方案


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

我自己找到的。下面是如何做到这一点

在表单中有一个隐藏按钮

输入类型=“按钮” id='myHiddenButton'可见='false' onclick=“javascript:doFocus();” width='1px'style=“显示:无”

让javascript在隐藏按钮的单击事件中触发

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


当你第一次尝试设置焦点时,这似乎是可行的,但在同一个屏幕上进行了更多的交互后,我无法使其工作。我实际意识到:你知道如何在文本框上设置键后使其工作吗?我有一个条形码阅读器,在文本框中输入文本后按enter键。这会使文本框失去焦点。在那之后,我不能从
blur
事件或
keyup
事件(我现在处理该事件是为了向服务器发出特定请求)中替换对它的关注您可以稍微扩展上述方法以实现这一点:基本上,在隐藏按钮事件处理程序中,尝试将焦点设置为下一个控件,当它到达最后一个控件时,激活提交按钮。希望有帮助!
     function doFocus() {
         var focusElementId = "MyTextBox"
         var textBox = document.getElementById(focusElementId);
         textBox.focus();
     }
     function clickButton() {
         document.getElementById('myHiddenButton').click();
     }

     setTimeout("clickButton()", 100);