1,检测浏览器是否支持标准html5
checkBrowserSupporHtml5: function () {
let html5Con = {
isSupportFormData: window.FormData,
isIe10: !window.ActiveXObject
};
let isSupportHtml5 = true;
let keys = Object.keys(html5Con);
for(let key of keys) {
if(!html5Con[key]) {
isSupportHtml5 = false;
break;
}
}
return isSupportHtml5;
}
2,navigator方式精确检测浏览器类型
this.browser = this.currentBrowser();
let system=this.CurrentSystem().system;
this.is360 = this.checkBrowser360();
for(let key in system){
if(system[key] != false){
this.currentSystem = key;
}
}
/**
* 获取浏览器信息
* @returns {{}}
*/
currentBrowser:function(){
let Browser = {
};
let ua = navigator.userAgent.toLowerCase();
let s;
(s = ua.match(/msie ([\d.]+)/)) ? Browser['ie'] = s[1] :
(s = ua.match(/firefox\/([\d.]+)/)) ? Browser['firefox'] = s[1] :
(s = ua.match(/chrome\/([\d.]+)/)) ? Browser['chrome'] = s[1] :
(s = ua.match(/opera.([\d.]+)/)) ? Browser['opera'] = s[1] :
(s = ua.match(/crios.([\d.]+)/)) ? Browser['crios'] = s[1] :
(s = ua.match(/trident.([\d.]+)/)) ? Browser['ie'] = s[1] :
(s = ua.match(/version\/([\d.]+).*safari/)) ? Browser['safari'] = s[1] : 0;
return Browser;
},
/**
* 获取浏览器信息
* 主要是检测360用
* @returns {{}}
*/
checkBrowser360:function(){
let ua = navigator.userAgent.toLocaleLowerCase();
let browserType=null;
if (ua.match(/chrome/) != null) {
let is360 = _mime("type", "application/vnd.chromium.remoting-viewer");
function _mime(option, value) {
let mimeTypes = navigator.mimeTypes;
for (let mt in mimeTypes) {
if (mimeTypes[mt][option] == value) {
return true;
}
}
return false;
}
if(is360) {
browserType = '360';
}
return browserType;
}
},
/**
* 获取设备信息
* @returns {{}}
*/
CurrentSystem:function() {
let system = {
win: false,
mac: false,
xll: false,
iphone: false,
ipoad: false,
ipad: false,
ios: false,
android: false,
nokiaN: false,
winMobile: false,
wii: false,
ps: false
};
let ua = navigator.userAgent;
// 检测平台
let p = navigator.platform;
system.win = p.indexOf('Win') == 0;
system.mac = p.indexOf('Mac') == 0;
// system.xll = (p.indexOf('Xll') == 0 || p.indexOf('Linux') == 0);
system.xll = p.indexOf('Linux') == 0;
// 移动设备
system.iphone = ua.indexOf('iPhone') > -1;
system.ipoad = ua.indexOf('iPod') > -1;
system.ipad = ua.indexOf('iPad') > -1;
system.nokiaN = ua.indexOf('nokiaN') > -1;
// 检测IOS版本
if (system.mac && ua.indexOf('Mobile') > -1) {
if (/CPU (?:iPhone )?OS (\d+_\d+)/i.test(ua)) {
system.ios = true;
}
}
// 检测Android版本
if (/Android (\d+\.\d+)/i.test(ua)) {
system.android = parseFloat(RegExp['$1'])?true:false;
}
// 游戏系统
system.wii = ua.indexOf('Wii') > -1;
system.ps = /PlayStation/i.test(ua);
return {
system: system
}
},