在iOS8之前,在input元素上使用Javascript .focus()方法似乎不起作用(虚拟键盘不会显示)。 在最新的iOS 8发行版之后,运行.focus()方法似乎对页面加载没有任何影响,但是一旦用户触摸了屏幕上的任何位置,虚拟键盘就会立即出现,并将页面滚动到焦点的元素上。 (当我使用HTML属性“自动对焦”时,这也是一个问题) 此更改已导致我的网站上的iOS8用户出现问题。 当用户尝试点击我的页面上的button时,突然滚动和键盘外观导致他们无意中单击屏幕上较低的button。 我假设这是在iOS8中的错误,而不是故意的function,我的问题是什么是解决这个问题的最有效的解决scheme? 每次使用.focus()方法时,是否必须检查navigator.userAgent以查看设备是否为iOS8?
在移动Safari中,我无法在设置延迟时间后将焦点放在文本字段上。 我附上了一些展示该问题的示例代码。 如果点击button,则触发.focus(),一切按预期工作。 如果将焦点挂在callback函数上(如setTimeout函数),则只会在移动Safari中失败。 在所有其他浏览器中,有一个延迟,然后焦点发生。 令人困惑的是,即使在移动的Safari浏览器中也会触发“焦点”事件。 这(和〜类似的意见在SO)让我觉得这是一个移动Safari浏览器的错误。 任何指导将被接受。 我已经在模拟器和iPhone 3GS / 4 iOS4上进行了testing。 HTML示例: <!DOCTYPE html> <html lang='en'> <head> <title>Autofocus tests</title> <meta content='width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0' name='viewport'> <meta content='yes' name='apple-mobile-web-app-capable'> </head> <body> <h1> Show keyboard without user focus and select text: </h1> <p> <button id='focus-test-button'> Should focus on input when you click me after […]
我似乎回想以前版本的HTML(在HTML5之前)所需属性中的大多数(也许是全部)属性具有值,如readonly="readonly" 。 这对HTML5和autofocus属性是否正确?
我试图设置默认焦点在页面加载时的input框(例如:谷歌)。 我的网页很简单,但我不知道如何做到这一点。 这是我到目前为止: <html> <head> <title>Password Protected Page</title> <script type="text/javascript"> function FocusOnInput() { document.getElementById("PasswordInput").focus(); } </script> <style type="text/css" media="screen"> body, html {height: 100%; padding: 0px; margin: 0px;} #outer {width: 100%; height: 100%; overflow: visible; padding: 0px; margin: 0px;} #middle {vertical-align: middle} #centered {width: 280px; margin-left: auto; margin-right: auto; text-align:center;} </style> </head> <body onload="FocusOnInput()"> <table id="outer" […]