在iOS8中,使用.focus()将显示虚拟键盘,并在触摸后滚动页面。

5 浏览
0 Comments

在iOS8中,使用.focus()将显示虚拟键盘,并在触摸后滚动页面。

在iOS8之前,使用JavaScript的.focus()方法在输入元素上似乎没有任何效果(虚拟键盘不会显示)。在最新的iOS 8版本发布后,运行.focus()方法似乎对页面加载没有影响,但一旦用户触摸屏幕的任何位置,虚拟键盘会立即出现并将页面滚动到焦点元素。(当我使用HTML属性“autofocus”时也存在此问题)

这个改变在我的网站上给iOS8用户带来了问题。当用户试图点击页面上的按钮时,突然的滚动和键盘出现会导致他们无意中点击了屏幕下方的按钮。

我认为这是iOS8中的一个错误,并不是有意为之的功能。我的问题是,解决这个问题最有效的方法是什么?

我需要每次使用.focus()方法时都检查navigator.userAgent来查看设备是否为iOS8吗?

0