前言(日常废话)
本篇记录通过js获取浏览器及其版本号,经过测试可用。主要用于在做浏览器兼容时,对不同浏览器进行不同操作。
国产浏览器特别说明:
因为其判断依据主要是浏览器所使用的的浏览器内核,而360、QQ等国产浏览器使用的是chrome和ie的双内核,所以无法判断出其名称。
目录
正文
获取浏览器名称
代码
// 获取浏览器名称
function getBrowserName() {
var userAgent = navigator.userAgent;
if (userAgent.indexOf("Opera") > -1 || userAgent.indexOf("OPR") > -1) {
return 'Opera';
} else if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1) {
return 'IE';
} else if (userAgent.indexOf("Edge") > -1) {
return 'Edge';
} else if (userAgent.indexOf("Firefox") > -1) {
return 'Firefox';
} else if (userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Chrome") == -1) {
return 'Safari';
} else if (userAgent.indexOf("Chrome") > -1 && userAgent.indexOf("Safari") > -1) {
return 'Chrome';
} else if (!!window.ActiveXObject || "ActiveXObject" in window) {
return 'IE>=11';
} else {
return 'Unkonwn';
}
}
console.log(getBrowserName())
效果展示
Google Chrome:
360极速浏览器:
Firefox:
IE8(虚拟机):
获取浏览器名称及其版本号
代码
// 获取浏览器名称及其版本号
function getBrowserNameVersion() {
var Sys = {};
var ua = navigator.userAgent.toLowerCase();
var s;
(s = ua.match(/rv:([\d.]+)\) like gecko/)) ? Sys.ie = s[1]:
(s = ua.match(/msie ([\d\.]+)/)) ? Sys.ie = s[1] :
(s = ua.match(/edge\/([\d\.]+)/)) ? Sys.edge = s[1] :
(s = ua.match(/firefox\/([\d\.]+)/)) ? Sys.firefox = s[1] :
(s = ua.match(/(?:opera|opr).([\d\.]+)/)) ? Sys.opera = s[1] :
(s = ua.match(/chrome\/([\d\.]+)/)) ? Sys.chrome = s[1] :
(s = ua.match(/version\/([\d\.]+).*safari/)) ? Sys.safari = s[1] : 0;
// 根据关系进行判断
if (Sys.ie) return ('IE: ' + Sys.ie);
if (Sys.edge) return ('EDGE: ' + Sys.edge);
if (Sys.firefox) return ('Firefox: ' + Sys.firefox);
if (Sys.chrome) return ('Chrome: ' + Sys.chrome);
if (Sys.opera) return ('Opera: ' + Sys.opera);
if (Sys.safari) return ('Safari: ' + Sys.safari);
return 'Unkonwn';
}
console.log(getBrowserNameVersion())
效果展示
Google Chrome:
360极速浏览器:
Firefox 84:
Firefox 50 :
IE8(虚拟机):
写给看贴的你
本人学识短浅,如有错误以及缺漏的地方请指正批评;如有涉及侵权,请手下留情,联系本人,看见即删(手动狗头保命)。
祝各位看官大佬们身体健康、诸事顺心、码运荣昌、少写bug少加班…