今天在做一个H5项目的时候,发现使用JS的focus命令在iOS浏览器(包括微信)中无法调出键盘。试过N种方法都不起作用,谷歌了一些国外的帖子后,才知道iOS下,通过JS调用键盘是被禁止的,亦或许是一个bug。在这种情况下,其实focus事件已经执行了,只是iPhone键盘跳不出来,比较蛋疼。
因此在输入框上调用focus事件,无论原生,还是jQuery类似下面的JS代码无效:
$("#inputElement").focus(); |
但是可以监听其他点击事件,在回调中添加这个命令就可以了,比如
1 2 3 4 | //用户点击#element元素可以激活小键盘 $("#element").on("click",function(){ $("#inputElement").focus(); }); |
并且像这样迂回也是可以的
1 2 3 4 5 6 7 | $("#element1").on("click",function(){ $("#inputElement").focus(); }); //用户点击#element2元素也可以激活小键盘 $("#element2").on("click",function(){ $("#inputElement1").click(); }); |
但是像这样又没门儿了!
1 2 3 4 5 | $("#element1").on("click",function(){ $("#inputElement").focus(); }); //js凭空捏造的点击事件无效 $("#element1").click(); |
于是乎,和iOS对自动播放视频音乐等限制一样,必须由用户的一个真实手动操作去触发键盘的跳出,完全用JS去创造事件是不行的。知道了这一点后,我们可以找一些理由诱使用户去点击页面上的某个元素,从而达到弹出键盘的目的。
本站所有文章均为原创,欢迎转载,请注明文章出处:https://blog.brain1981.com/1465.html。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。
本站记录了近几年的工作中遇到的一些技术问题和解决过程,“作品集”还收录了本人的大部分作品展示。除了本博客外,我们的工作室网站 – JennyStudio,内有更多作品回顾和展示。
您也可以扫描左边的二维码,关注我们的微信公众号,在微信上查看我们的案例。
您也可以扫描左边的二维码,关注我们的微信公众号,在微信上查看我们的案例。
解决