使用navigator.userAgent.toLowerCase()判断浏览器的类型

在跨平台、浏览器、移动设备兼容的时候,要根据设备、浏览器做特定调整,所以我们经常会用到navigator.userAgent.toLowerCase()来进行判断。

先来解释一下意思,navigator是HTML中的内置对象,包含浏览器的信息;userAgent是navigator的属性方法,可以返回由客户机发送服务器的头部的值,作用其实就是就是返回当前用户所使用的是什么浏览器,toLowerCase()是将转换为小写。

区分Android、iphone、ipad:

var ua = navigator.userAgent.toLowerCase();
if (/android|adr/gi.test(ua)) {
    // 安卓
     
}else if(/\(i[^;]+;( U;)? CPU.+Mac OS X/gi.test(ua)){
    //苹果
     
}else if(/iPad/gi.test(ua)){
    //ipad

}

有些软件是内置的浏览器,比如新浪微博、腾讯QQ(非QQ浏览器)和微信

(微信在6.0.2版本的时候做了改动,微信的分享功能在新版本跟以前不一样了)为了兼容版本,要做以下操作:

注:新浪微博为1,QQ客户端为2,微信低于6.0.2版本为3,高于6.0.2版本为4,其他为0。

var ua = navigator.userAgent.toLowerCase();  
if(ua.match(/weibo/i) == "weibo"){  
    console.log(1);
}else if(ua.indexOf('qq/')!= -1){  
    console.log(2);
}else if(ua.match(/MicroMessenger/i)=="micromessenger"){  
var v_weixin = ua.split('micromessenger')[1];  
    v_weixin = v_weixin.substring(1,6);  
    v_weixin = v_weixin.split(' ')[0];  
if(v_weixin.split('.').length == 2){  
    v_weixin = v_weixin + '.0';  
}  
if(v_weixin < '6.0.2'){  
    console.log(3);
}else{  
    console.log(4);  
}  
}else{  
    console.log(0); 
}  

区分各个浏览器:

    var ua=navigator.userAgent.toLowerCase();  
    if(/msie/i.test(ua) && !/opera/.test(ua)){  
        alert("IE");  
        return ;  
    }else if(/firefox/i.test(ua)){  
        alert("Firefox");  
        return ;  
    }else if(/chrome/i.test(ua) && /webkit/i.test(ua) && /mozilla/i.test(ua)){  
        alert("Chrome");  
        return ;  
    }else if(/opera/i.test(ua)){  
        alert("Opera");  
        return ;  
    }else if(/iPad/i){ 
        alert("ipad"); 
        return ; 
    }
else if(/webkit/i.test(ua) &&!(/chrome/i.test(ua) && /webkit/i.test(ua) && /mozilla/i.test(ua))){  
        alert("Safari");  
        return ;  
    }else{  
        alert("unKnow");  
    }  




*********************************补充分割线*************************************************

chrome中: navigator.userAgent 的值

其实navigator.userAgent 也有bug,

在IOS中,时间的显示格式一般是 '2016/11/11 11:11:11' ,所以对于安卓的'2016-11-11 11:11:11',是不适用于IOS的。

因此,我们用下面的代码去判断安卓系统,

var isAdr = new Date('2016-11-11 11:11:11').getTime() > 0;

!isAdr 就是IOS~~~

  • 11
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值