龙空技术网

最近遇到的IPhone手机移动端H5页面Input输入框兼容问题总结

剪辑炼器期 717

前言:

而今大家对“jsinput事件”可能比较关注,你们都想要知道一些“jsinput事件”的相关内容。那么小编在网上搜集了一些有关“jsinput事件””的相关文章,希望姐妹们能喜欢,看官们快快来了解一下吧!

最近公司开发的app采用混合开发模式,前端写的H5页面给Android与iOS 调用,iOS遇到了很多坑,现将Input输入框遇到的问题及网上找到的解决方法总结如下:

1、弹出的键盘挡住Input输入框

弹出的键盘挡住Input输入框

这个问题不一定每个iPhone手机都会出现,但是一般使用了苹果第三方输入法的手机都重现了这个问题,感谢万能的搜索引擎,我找到了下面这段代码解决了这个问题

const input = document.getElementsByTagName('input')[0];

let interval;

input.onfocus = () => {

interval = setInterval(() => {

input.scrollIntoViewIfNeeded();

}, 1000);

};

input.onblur = () => {

clearInterval(interval);

};

2、点击Input输入框外面的区域弹出的键盘不隐藏

这个问题在安卓机上面没有出现过,具体原因是click不能触发iPhone的事件,需要用触屏事件来触发一次。

页面加入下面的js代码后解决了这个问题

function BlurOrFocus(){

var obj = document.getElementsByTagName('input')[0];

var docTouchend = function(event){

if(event.target!=obj){

setTimeout(function(){

obj.blur();

document.removeEventListener('touchend',docTouchend,false);

},100);

}

}

if(obj){

obj.addEventListener('touchstart',function(){

document.addEventListener('touchend',docTouchend,false);

},false);

}

}

BlurOrFocus();

一起学习,互相督促进步,欢迎关注我~

标签: #jsinput事件