为什么Safari Mobile在iOS 8上无法处理许多输入字段

为什么Safari Mobile在iOS 8上无法处理许多输入字段,ios,ipad,ios8,mobile-safari,Ios,Ipad,Ios8,Mobile Safari,iOS 8.0/8.0.1/8.0.2存在此问题 我有一个包含70个简单文本输入的页面: <input class="" type="text"> 在iOS 7上,页面没有问题。但在iOS 8上,在字段中选择和键入会导致iPad变得缓慢和滞后 你可以在这个例子中看到这个问题 有人知道这个问题的解决方法吗?更新:这似乎在iOS 8.1.1测试版中得到了解决。根据评论,这似乎不是固定的:( 它也在8.1 Beta中。你应该这样做 某些内容会导致整个网页重新加载或Safari挂起

iOS 8.0/8.0.1/8.0.2存在此问题

我有一个包含70个简单文本输入的页面:

<input class=""  type="text">

在iOS 7上,页面没有问题。但在iOS 8上,在字段中选择和键入会导致iPad变得缓慢和滞后

你可以在这个例子中看到这个问题

有人知道这个问题的解决方法吗?

更新:这似乎在iOS 8.1.1测试版中得到了解决。根据评论,这似乎不是固定的:(


它也在8.1 Beta中。你应该这样做

某些内容会导致整个网页重新加载或Safari挂起。例如,访问并开始在搜索框中键入内容。如果不重新加载页面,则无法在iOS 8.x设备上执行此操作


值得注意的是,Chrome和Mercury运行良好,因此您可以建议您的用户切换到基于
UIWebView
的第三方浏览器(我没有测试
WKWebView

问题似乎与文档或表单中的文本输入数量有关

我通过在小组文本输入周围放置标签“修复”了这个问题

<form>
  <input type="text">
  <input type="text">
  <input type="text">
</form>

<form>
  <input type="text">
  <input type="text">
  <input type="text">
</form>

等等

在某些情况下,我在元素中有一个带有单独文本字段的大表。你不能在表单中包含或元素,而是必须包含单个元素的全部或内容。在这些情况下,我必须在每个文本输入周围放置一个元素

<table>
  <tr>
    <td>
      <form>
        <input type="text">
      </form>
    </td>
    <td>
      <form>
        <input type="text">
      </form>
    </td>
  </tr>
  etc....
</table>

我为此苦苦挣扎了好几个小时,直到在本页找到了解决方案。谢谢!这是我对Design Navigator建议的解决方案的实现:

$(文档).ready(函数(){
var isSafari=navigator.vendor&&navigator.vendor.indexOf('Apple')>-1&&navigator.userAgent&&navigator.userAgent.match('CriOS');
如果(伊萨法里){
$(“#容器输入[type=“text”]”)。换行(“”);
}
}

Ya我还注意到它可以在Chrome和其他一些第三方浏览器上运行。很遗憾,强迫用户下载其他浏览器并不是一个真正的最佳解决方案。我也遇到了同样的问题,并将我的设备升级到8.1.1以查看它是否得到了修复。这不是。可能是一个轻微的改进,但在输入量大的页面上仍然令人难以置信地笨拙和缓慢。我还不知道该怎么办,但我建议其他有类似问题的人不要对8.1.1.8.1.1抱有太多希望。目前,如果用户使用Safari并拥有8+,我会带他们到一个页面,通知他们Safari目前不支持IOS 8。如果他们想使用该服务,必须安装Google Chrome(或使用台式电脑)。似乎是我能做的最好的事情,直到苹果推出一个修复程序。一年后仍然遇到这个问题,我真的不想把所有的输入都打包到一个要修复的程序中。你知道什么是“设计导航器”?我可以吻你。这就像一个魅力。错误的留言板;-)你给我们的是一个乱七八糟的问题,或者换句话说,是一个大问题!混乱但确实解决了问题。这就是为什么我投票并接受答案,以防它对其他人有帮助。大家好,我遇到了一个关于在IOS8上运行输入的奇怪问题,请参阅[,希望你能回答这个问题,提前谢谢你!哇。2019年的问题仍然存在,你救了我的命。桌面Safari 11.0.3上也出现了这种情况。
$(document).ready(function(){    
    var isSafari = navigator.vendor && navigator.vendor.indexOf('Apple') > -1 && navigator.userAgent && !navigator.userAgent.match('CriOS');
    if (isSafari){
      $('#container input[type="text"]').wrap('<form />');
    }
}