微信内置浏览器最近(2019.02发现的问题,此时微信版本12)好像对H5页面支持不太友好啊,IOS 安卓未出现这样的问题
简单描述一下页面及事发现场:
登录页面:输入手机号、图片验证码、短信验证码
输入图片验证码后(键盘还是被调起状态)-点击获取短信验证码按钮(input们失去焦点)-获取短验后,再点击页面基本上就挂掉了,哪里都没有反应。
解决:想沟通产品直接检测到如果是微信浏览器,直接右上角引导Safari点开,产品说不?(确实,可以理解,现在微信的引流太大了,不能被放弃)
解决2:以下代码
focusNum = 0;//初始值
//获取焦点时调用
makeFocus(event) {
this.focusNum++;
}
//失去焦点调用
scrollToTopZero(){
const ua = navigator.userAgent;
setTimeout(()=>{
this.focusNum--;
if(this.focusNum <= 0){
if(/MicroMessenger/i.test(ua)){
document.querySelector('body').scrollTop = 0;
}
}
},200)
}
还不放心,在页面的点击事件那再重复以下代码
const ua = navigator.userAgent;
if(/MicroMessenger/i.test(ua)){
document.querySelector('body').scrollTop = 0;
}
因为近期在做App转换Hybrid ,遇到一些问题,歪打正着设置scrollTop = 0;
欢迎指正
更新->新的方案
scrollToTopZero(){
const ua = navigator.userAgent;
setTimeout(()=>{
if(document.activeElement.nodeName.toLocaleLowerCase() != 'input'){
if(/MicroMessenger/i.test(ua)){
document.querySelector('body').scrollTop = 0;
}
}
},200)
}
认为这种判断节点的方式 比用数量计算的更好用