为什么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内容。 你不能在没有页面重新加载的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 />'); } }