为什么Safari Mobile在处理iOS 8上的许多input字段时遇到了问题

iOS 8.0 / 8.0.1 / 8.0.2有这个问题。

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

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

在iOS 7上,页面没有问题。 但在iOS 8上,select并在字段中input会导致iPad变得缓慢和迟缓。

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

有谁知道这个问题的解决?

似乎这个问题与作为文档或表单一部分的文本input的数量有关。

我通过将<form>标签放在less量文本input组中来“解决”这个问题。

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

等等

在某些情况下,我在<td>元素中使用了包含单个文本字段的大型表格。 您不能在表单中包含<tr>或<td>元素,而必须包含整个<table>或各个<td>元素的内容。 在这些情况下,我必须在每个文本input周围放置一个<form>元素。

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

更新: 这似乎在iOS 8.1.1testing版中解决。 这似乎不是固定的,根据评论。 🙁


这也是在8.1testing版。 你应该提交一个雷达 。

有些东西导致整个网页重新加载或Safari挂起。 例如,访问http://getemoji.com/并开始在search框中input内容&#x3002; 你不能在没有页面重新加载的iOS 8.x设备上执行它。

值得注意的是,Chrome和Mercury工作正常,所以你可以build议你的用户切换到基于UIWebView的第三方浏览器。 (我没有testing出WKWebView 。)

我一直在为此奋斗了很长时间,直到我在这个页面上find解决scheme。 谢谢! 这是我对Design Navigatorbuild议的解决scheme的实现:

 $(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 />'); } }