ios CordovaJavaScript焦点事件永远不会到来
ios Cordova javascript focus event never comes
使用 GWT 2.5.1 和 Cordova 2.9.0.0 开发 iOS 应用程序。
遇到了一个相当大的问题:点击任何文本框时,虚拟键盘出现,但没有触发javascript焦点事件(或除窗口调整大小以外的任何其他事件)。
所以我无法确定点击了哪个文本框。此外,我什至不知道为什么窗口大小发生了变化 - 因为屏幕方向变化或键盘外观。
document.activeElement 指向 BODY 元素。
第二次点击(当键盘可见时)会在焦点事件上触发。
在iPhone模拟器5.0和6.0上试用
所以问题是如何在第一次点击时获得活动文本框或检查虚拟键盘是否可见(无需编写 phonegap 插件)?
更新:仅当 config.xml 具有键盘收缩视图=true 时,才会发生此问题
一般来说,据我了解,这个问题是由于 iOS webview 中焦点事件处理的特殊性(与幽灵点击事件有关的东西。 没有时间深入挖掘)。
解决方案是使用 jQuery 捕获"触摸"事件,并将焦点设置为手动点击的输入。我不确定为什么我们需要jquery,但这是我设法捕获"触摸"事件的唯一方法
代码(使用GWT jQuery端口gwtquery):
$("input").live(Event.ONTOUCHEND, new Function() {
@Override
public boolean f(final Event e) {
$(e).focus();
return false;
}
});
到目前为止,它或多或少运行良好。
相关文章:
- 成功回调永远不会被JSONP请求调用
- 永远不要停止gif预加载程序
- UserInformation.getFirstNameAsync承诺永远不会实现
- 谷歌电子表格脚本:如何保存“;永远”;
- While循环在JavaScript中永远运行
- 永远都不知道如何在twgl中进行纹理工作
- 我的链接按钮的OnClick事件永远不会被触发
- 动态弹出窗口'通过调用一个永远运行并返回's每个周期后的数据
- 如何在不停止的情况下永远运行node-js
- if 语句永远不会到达 else 部分
- mediaelement.js/html5视频在前进过多或后退过多时永远保持加载状态
- 脚本工作,但永远不要启动它
- 谷歌闭包编译器,某些属性永远不会被重命名
- 退出视图后,“余烬”单选按钮永远不会被清除
- 多次调用 javascript 会导致 setInterval 永远不会被清除
- MongoDB 字段永远不会为空
- 永远启动命令不起作用
- AngularJS - 函数永远不会得到控制
- 我该怎么做才能创建一个永远有效的 HTML 页面
- 仅限客户端的 cookie - 永远不会进入服务器的 cookie