为了账号安全,请及时绑定邮箱和手机立即绑定

如何检测浏览器的版本?

如何检测浏览器的版本?

开心每一天1111 2019-06-14 11:06:35
如何检测浏览器的版本?我一直在搜索代码,这样我就可以检测访问该网站的用户是否有Firefox 3或4。我所找到的只是用来检测浏览器类型的代码,而不是版本。如何检测到这样的浏览器版本?
查看完整描述

3 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

你可以看到浏览器说,并使用这些信息记录或测试多个浏览器。


navigator.sayswho= (function(){

    var ua= navigator.userAgent, tem, 

    M= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];

    if(/trident/i.test(M[1])){

        tem=  /\brv[ :]+(\d+)/g.exec(ua) || [];

        return 'IE '+(tem[1] || '');

    }

    if(M[1]=== 'Chrome'){

        tem= ua.match(/\b(OPR|Edge)\/(\d+)/);

        if(tem!= null) return tem.slice(1).join(' ').replace('OPR', 'Opera');

    }

    M= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];

    if((tem= ua.match(/version\/(\d+)/i))!= null) M.splice(1, 1, tem[1]);

    return M.join(' ');

})();


console.log(navigator.sayswho); // outputs: `Chrome 62`


查看完整回答
反对 回复 2019-06-14
?
慕少森

TA贡献2019条经验 获得超9个赞

这结合了肯纳贝克(K)的答案和Hermann Ingjaldsson(H)的答案:

  • 维护原始答案的最小代码。(K)
  • 与Microsoft Edge(K)一起工作
  • 扩展导航器对象,而不是创建新的变量/对象。(K)
  • 将浏览器版本和名称分离为独立的子对象。(H)

 

navigator.browserSpecs = (function(){
    var ua = navigator.userAgent, tem, 
        M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
    if(/trident/i.test(M[1])){
        tem = /\brv[ :]+(\d+)/g.exec(ua) || [];
        return {name:'IE',version:(tem[1] || '')};
    }
    if(M[1]=== 'Chrome'){
        tem = ua.match(/\b(OPR|Edge)\/(\d+)/);
        if(tem != null) return {name:tem[1].replace('OPR', 'Opera'),version:tem[2]};
    }
    M = M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
    if((tem = ua.match(/version\/(\d+)/i))!= null)
        M.splice(1, 1, tem[1]);
    return {name:M[0], version:M[1]};})();console.log(navigator.browserSpecs); 
    //Object { name: "Firefox", version: "42" }if (navigator.browserSpecs.name == 'Firefox') {
    // Do something for Firefox.
    if (navigator.browserSpecs.version > 42) {
        // Do something for Firefox versions greater than 42.
    }}else {
    // Do something for all other browsers.}


查看完整回答
反对 回复 2019-06-14
  • 3 回答
  • 0 关注
  • 524 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信