获取当前访问的浏览器类型--处理各个浏览器兼容
程序员文章站
2022-06-05 08:04:33
...
//判断当前访问浏览器 返回一个
/*
返回值类型
object{
name:"chrome",version:5.0,isChrome:true
}
*/
getBrowser() {
const ua = navigator.userAgent.toLocaleLowerCase();
const browser = {
name: null,
version: null
};
if (ua.match(/chrome/) != null) {
// 360浏览器
let _mime = (option, value) => {
var mimeTypes = navigator.mimeTypes;
for (var mt in mimeTypes) {
if (mimeTypes[mt][option] === value) {
return true;
}
}
return false;
};
var is360Browser = _mime("type", "application/vnd.chromium.remoting-viewer");
if (is360Browser ) {
browser.is360Browser = true;
browser.name = "360";
} else {
browser.isChrome = true;
browser.name = "Chrome";
}
} else if (ua.match(/msie/) != null || ua.match(/trident/) != null) {
browser.isIE = true;
browser.name = "IE";
browser.version =
ua.match(/msie ([\d.]+)/) != null
? ua.match(/msie ([\d.]+)/)[1]
: ua.match(/rv:([\d.]+)/)[1];
} else if (ua.match(/edge/) != null) {
browser.isEdge = true;
browser.name = "Edge";
} else if (ua.match(/firefox/) != null) {
// 火狐浏览器
browser.isFirefox = true;
browser.name = "FireFox";
} else if (ua.match(/safari/) != null) {
// safari浏览器
browser.isSafari = true;
browser.name = "Safari";
} else if (ua.match(/ubrowser/) != null) {
// UC浏览器
browser.isUC = true;
browser.name = "UC";
} else if (ua.match(/opera|opr/) != null) {
// 欧朋浏览器
browser.isOpera = true;
browser.name = "Opera";
} else if (ua.match(/bidubrowser/) != null) {
// 百度浏览器
browser.isBaidu = true;
browser.name = "Baidu";
} else if (ua.match(/metasr/) != null) {
// 搜狗浏览器
browser.isSogou = true;
browser.name = "Sogou";
} else if (ua.match(/qqbrowse|tencenttraveler/)) {
browser.isQQ = true;
browser.name = "QQ";
} else if (ua.match(/maxthon/) != null) {
// 遨游浏览器
browser.isMaxthon = true;
browser.name = "Maxthon";
}
return browser;
}