解决focus事件无效

今天在做搜索页的时候发现使用JS的focus命令在iOS浏览器(包括微信)中无法调出键盘。试过N种方法都不起作用,原来iOS下,通过JS调用键盘是被禁止了。其实focus事件已经执行了,只是iPhone键盘弹不出来。

 因此在输入框上调用focus事件,无论原生,还是jQuery类似下面的JS代码无效:

 $("#inputElement").focus(); 

但是可以监听其他点击事件,在回调中添加这个命令就可以了,比如 

//用户点击#element元素可以激活小键盘 

$("#element").on("click",function(){ $("#inputElement").focus(); });

 $("#element1").on("click",function(){ $("#inputElement").focus(); }); 

//用户点击#element2元素也可以激活小键盘

 $("#element2").on("click",function(){ $("#inputElement1").click(); }); 

但是像这样又没门儿了!

 $("#element1").on("click",function(){ $("#inputElement").focus(); });

 //js凭空捏造的点击事件无效 

$("#element1").click(); 

于是乎,和iOS对自动播放视频音乐等限制一样,必须由用户的一个真实手动操作去触发键盘的跳出,完全用JS去创造事件是不行的。知道了这一点后,我们可以找一些理由诱使用户去点击页面上的某个元素,从而达到弹出键盘的目的。

你可能感兴趣的:(解决focus事件无效)