我在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 -添加了移动版链接