Javascript 当包装到iframe中时,touchstart处理程序会弄乱文本输入的焦点
我正在开发一个phonegap应用程序,它使用iframe嵌入一个已经对手机友好的Web应用程序。在webapp中有一个搜索功能,它聚焦于显示虚拟键盘的文本字段。到目前为止一切都很好 但是,我使用的库在文档(iframe内部)上注册了一个touchstart侦听器。因此,当虚拟键盘显示用户在文档中触摸时,键盘停止工作 从ipad(或XCode中的ipad模拟器…我已经在7.0.3上进行了测试)转到此处并按照说明操作: 有趣的是,如果你不把它包在一个iframe中,键盘就不会坏。走到这里:并按照指示,以确保它不会断裂 我一直在想这个问题,但不知道如何让它工作。作为参考,这些stack exchange帖子似乎是相关的,但我无法解决它们的问题:Javascript 当包装到iframe中时,touchstart处理程序会弄乱文本输入的焦点,javascript,ios,iframe,cordova,touchstart,Javascript,Ios,Iframe,Cordova,Touchstart,我正在开发一个phonegap应用程序,它使用iframe嵌入一个已经对手机友好的Web应用程序。在webapp中有一个搜索功能,它聚焦于显示虚拟键盘的文本字段。到目前为止一切都很好 但是,我使用的库在文档(iframe内部)上注册了一个touchstart侦听器。因此,当虚拟键盘显示用户在文档中触摸时,键盘停止工作 从ipad(或XCode中的ipad模拟器…我已经在7.0.3上进行了测试)转到此处并按照说明操作: 有趣的是,如果你不把它包在一个iframe中,键盘就不会坏。走到这里:并按照指
安迪这似乎是一个未安装的iOS bug。唯一的修复方法是将输入从iframe移动到主文档中 长话短说: Andy试图解决此问题,但最终失败(在模式中进行登录/设置对话框)。这几乎要了我的命,但也许这是一个很好的禅宗练习。以下是我们排除/尝试的内容:
- iframe未聚焦/聚焦于不同的文档
- 在设置焦点之前完全模糊所有内容
- 设置范围等,而不是焦点
- touchstart堆栈中的手动构建和触发事件
- 检查事件是否多次激发
- 查看css属性(如用户选择或触摸标注)是否有任何区别
所有这些最终的假设都是与iOS 7中的某些更新相关的WebKit“将输入滚动到视图”逻辑。我想我发现了一些已报告的实例,遗憾的是还没有解决方案。