未通过点击激活时,.focus()在chrome移动设备上不起作用。解决方法?

时间:2019-01-05 04:39:28

标签: javascript html

我在chrome,移动版上遇到了一些奇怪的功能。

当我尝试着重于chrome上的元素时,当您尝试仅加载输入,getItById并执行.focus()时,它不起作用。但是,如果将其包装在附加到按钮的事件侦听器中,然后用鼠标单击该按钮,则效果很好。

因此,我尝试通过查看是否可以调用btn.click()来欺骗它,但这不会激活.focus()

在下面进行以下操作:在移动设备上,Chrome(至少对于iOS设备)加载页面。您应该收到一个“已单击”警报,但它不会专注于输入。然后,尝试单击按钮。您将同时获得警报和焦点。

我发现这很有趣,想看看人们是否知道解决方法。

在此处链接-here

<input id="input" type="text">
<button id="button">Button</button>

<script>
const btn = document.getElementById('button')

btn.addEventListener('click', () => {
  alert('clicked')
  const input = document.getElementById('input')
  input.focus()
})

btn.click()
</script>

修改

我注意到的另一件事是,如果让手机进入睡眠状态并再次打开它,那么focus()会在没有单击的情况下工作。

编辑2 -添加了移动版链接

0 个答案:

没有答案