猿问

如何检测浏览器的版本?

如何检测浏览器的版本?

我一直在搜索代码,这样我就可以检测访问该网站的用户是否有Firefox 3或4。我所找到的只是用来检测浏览器类型的代码,而不是版本。

如何检测到这样的浏览器版本?


开心每一天1111
浏览 525回答 3
3回答

Smart猫小萌

你可以看到浏览器说,并使用这些信息记录或测试多个浏览器。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`

慕少森

这结合了肯纳贝克(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.}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答