js获取浏览器版本
作者:互联网
js获取浏览器版本
返回值格式如“chrome 88.0.4324.190”,浏览器包括IE、OLD_IE、Edge、firefox、Opera、Safari、QQ、火狐、微信。Chrome,其他未涉及到的可以根据“agent”字段自定义,需要注意的一点是,一个浏览器的userAgent有多个类型,例如QQ和火狐都包括chrome,所以需要注意研究下userAgent做判断
function getBrowserInfo() {
let agent = navigator.userAgent.toLowerCase();
console.log(agent);
// let system = agent.split(' ')[1].split(' ')[0].split('(')[1];
let REGSTR_EDGE = /edge\/[\d.]+/gi;
let REGSTR_IE = /trident\/[\d.]+/gi;
let OLD_IE = /msie\s[\d.]+/gi;
let REGSTR_FF = /firefox\/[\d.]+/gi;
let REGSTR_CHROME = /chrome\/[\d.]+/gi;
let REGSTR_SAF = /safari\/[\d.]+/gi;
let REGSTR_OPERA = /opr\/[\d.]+/gi;
let REGSTR_QQ = /qqbrowser\/[\d.]+/gi;
let REGSTR_METASR = /metasr\+/gi;
let REGSTR_WECHAT = /MicroMessenger\/[\d.]+/gi;
if (agent.indexOf('trident') > 0) {
// IE
return agent.match(REGSTR_IE)[0].split('/')[0] + ' ' + agent.match(REGSTR_IE)[0].split('/')[1];
} else if (agent.indexOf('msie') > 0) {
// OLD_IE
return agent.match(OLD_IE)[0].split('/')[0] + ' ' + agent.match(OLD_IE)[0].split('/')[1];
} else if (agent.indexOf('edge') > 0) {
// Edge
return agent.match(REGSTR_EDGE)[0].split('/')[0] + ' ' + agent.match(REGSTR_EDGE)[0].split('/')[1];
} else if (agent.indexOf('firefox') > 0) {
// firefox
return agent.match(REGSTR_FF)[0].split('/')[0] + ' ' + agent.match(REGSTR_FF)[0].split('/')[1];
} else if (agent.indexOf('opr') > 0) {
// Opera
return agent.match(REGSTR_OPERA)[0].split('/')[0] + ' ' + agent.match(REGSTR_OPERA)[0].split('/')[1];
} else if (agent.indexOf('safari') > 0 && agent.indexOf('chrome') < 0) {
// Safari
return agent.match(REGSTR_SAF)[0].split('/')[0] + ' ' + agent.match(REGSTR_SAF)[0].split('/')[1];
} else if (agent.indexOf('qqbrowse') > 0) {
// qqbrowse
return agent.match(REGSTR_QQ)[0].split('/')[0] + ' ' + agent.match(REGSTR_QQ)[0].split('/')[1];
} else if (agent.indexOf('metasr') > 0) {
// metasr火狐
return 'metasr';
} else if (agent.indexOf('micromessenger') > 0) {
// 微信内置浏览器
return agent.match(REGSTR_WECHAT)[0].split('/')[0] + ' ' + agent.match(REGSTR_WECHAT)[0].split('/')[1];
} else if (agent.indexOf('chrome') > 0) {
// Chrome
return agent.match(REGSTR_CHROME)[0].split('/')[0] + ' ' + agent.match(REGSTR_CHROME)[0].split('/')[1];
} else {
return '未获取到浏览器信息';
}
}
参考资料:
https://blog.csdn.net/xuaner8786/article/details/107084777
标签:浏览器,indexOf,agent,js,let,split,版本,REGSTR,match 来源: https://blog.csdn.net/qq_37800258/article/details/115010734