如何在iPhone Safari中自动对焦表单字段?

How can you autofocus on a form field in iPhone Safari?

本文关键字:表单 字段 iPhone Safari      更新时间:2023-09-26

我想让一个特定的表单字段在iPhone上的Safari浏览器中自动获得焦点。我以为这很简单,但我没能做到。那么,这实际上是不可能的,还是我错过了一些非常明显的东西(我怀疑)?下面是我使用的代码:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
   function formfocus() {
      document.getElementById('element').focus();
   }
   window.onload = formfocus;
</script>
</head>
<body>
<form>
<input/>
<input id="element" autofocus/>
<input/>
</form>
</body>
</html>

你可以看到我试图获得焦点两次,一次通过js和一次通过HTML"aufofocus"属性在输入字段。这两种方法都行不通。这在桌面浏览器上确实有效,但当我在iPhone 4上打开页面时,不行,也就是说,我必须通过单击其中一个表单字段来手动设置焦点。

最终我想要的是在手机浏览器上打开网站,把焦点放在表单字段上,包括打开键盘开始输入。

谢谢你的帮助!

根据本页说明,由于可用性原因,iphone/ipad不支持自动对焦

根据苹果公司的说法,iphone不支持自动对话。在WebKit的票证中有一条关于它的评论。该评论创建于2019年3月,声明如下:

"我们(苹果)喜欢当前的行为,不希望程序化当[…]方案重点是未在响应用户手势时调用。"

尝试给输入元素一个类型

<input type="email" id="element" autofocus/>

对于回退,可以使用

<script type="text/javascript">
    if (!("autofocus" in document.createElement("input"))) {
      document.getElementById("element").focus();
    }
</script>

试试setTimeout()里面的。focus()

setTimeout(function() {
jQuery('#element').focus();
}, 500);

我希望它对所有人都有效。