首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ios Cordova javascript焦点事件永远不会发生

ios Cordova javascript焦点事件永远不会发生
EN

Stack Overflow用户
提问于 2013-09-30 22:23:13
回答 1查看 1.1K关注 0票数 1

使用GWT2.5.1和Cordova 2.9.0.0开发iOS应用程序。

遇到了一个相当大的问题:点击任何文本框时,都会出现虚拟键盘,但不会触发javascript焦点事件(或除窗口大小调整以外的任何其他事件)。

因此,我无法确定点击了哪个文本框。此外,我甚至不知道为什么窗口大小会改变--因为屏幕方向的改变或键盘的外观。

document.activeElement指向BODY元素。

第二次轻敲(当键盘可见时)会触发onFocus事件。

在iphone模拟器5.0和6.0上试用

所以问题是,我如何才能在第一次点击时获得活动的文本框,或者检查虚拟键盘是否可见(而不编写phonegap插件)?

更新:仅当config.xml具有KeyboardShrinksView=true时才会出现此问题

EN

回答 1

Stack Overflow用户

发布于 2013-11-06 20:00:40

一般来说,据我所知,这个问题的发生是由于iOS webview中焦点事件处理的特殊性(与ghost点击事件有关。没有时间更深入地挖掘)。

解决方案是使用jQuery捕获“触摸”事件,并手动将焦点设置为轻敲的输入。我不确定为什么这里需要jquery,但这是我设法捕捉"touch“事件的唯一方法

代码(使用GWT jQuery端口gwtquery):

代码语言:javascript
运行
复制
$("input").live(Event.ONTOUCHEND, new Function() {
@Override
public boolean f(final Event e) {
    $(e).focus();
    return false;
   }
}); 

到目前为止,它或多或少运行得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19096675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档