IOS微信浏览器失去焦点后 键盘收起 页面挂掉 解决!❤️

微信内置浏览器最近(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)
 }

认为这种判断节点的方式 比用数量计算的更好用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值