gpt4 book ai didi

javascript - ios Cordova javascript 焦点事件永远不会到来

转载 作者:行者123 更新时间:2023-11-28 08:51:28 25 4
gpt4 key购买 nike

使用 GWT 2.5.1 和 Cordova 2.9.0.0 开发 iOS 应用程序。

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

所以我无法确定哪个文本框被点击了。此外,我什至无法说出为什么窗口大小发生了变化 - 因为屏幕方向的变化或键盘外观。

document.activeElement指向BODY元素。

第二次点击(当键盘可见时)确实会触发 onFocus 事件。

在 iPhone 模拟器 5.0 和 6.0 上尝试过

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

更新:仅当 config.xml 具有 KeyboardShrinksView=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;
}
});

到目前为止,它或多或少运作良好。

关于javascript - ios Cordova javascript 焦点事件永远不会到来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19096675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com