// 获取操作系统类型
export function getOsInfo() {
let userAgent = window.navigator.userAgent.toLowerCase();
let version = "";
if (userAgent.indexOf("win") > -1) {
if (
userAgent.indexOf("windows nt 5.0") > -1 ||
userAgent.indexOf("Windows 2000") > -1
) {
version = "Windows 2000";
} else if (
userAgent.indexOf("windows nt 5.1") > -1 ||
userAgent.indexOf("Windows XP") > -1
) {
version = "Windows XP";
} else if (
userAgent.indexOf("windows nt 5.2") > -1 ||
userAgent.indexOf("Windows 2003") > -1
) {
version = "Windows 2003";
} else if (
userAgent.indexOf("windows nt 6.0") > -1 ||
userAgent.indexOf("Windows Vista") > -1
) {
version = "Windows Vista";
} else if (
userAgent.indexOf("windows nt 6.1") > -1 ||
userAgent.indexOf("windows 7") > -1
) {
version = "Windows 7";
} else if (
userAgent.indexOf("windows nt 6.2") > -1 ||
userAgent.indexOf("windows 8") > -1
) {
version = "Windows 8";
} else if (userAgent.indexOf("windows nt 6.3") > -1) {
version = "Windows 8.1";
} else if (
userAgent.indexOf("windows nt 6.4") > -1 ||
userAgent.indexOf("windows nt 10") > -1
) {
version = "Windows 10";
} else {
version = "Unknown";
}
} else if (userAgent.indexOf("iphone") > -1) {
version = "Iphone";
} else if (userAgent.indexOf("mac") > -1) {
version = "Mac";
} else if (
userAgent.indexOf("x11") > -1 ||
userAgent.indexOf("unix") > -1 ||
userAgent.indexOf("sunname") > -1 ||
userAgent.indexOf("bsd") > -1
) {
version = "Unix";
} else if (userAgent.indexOf("linux") > -1) {
if (userAgent.indexOf("android") > -1) {
version = "Android";
} else {
version = "Linux";
}
} else {
version = "Unknown";
}
return version;
}
// 获取操作系统版本
export function getOSVersion() {
var sUserAgent = navigator.userAgent;
var isWin = navigator.platform == "Win32" || navigator.platform == "Windows";
var isMac =
navigator.platform == "Mac68K" ||
navigator.platform == "MacPPC" ||
navigator.platform == "Macintosh" ||
navigator.platform == "MacIntel";
if (isMac) return "Mac";
var isUnix = navigator.platform == "X11" && !isWin && !isMac;
if (isUnix) return "Unix";
var isLinux = String(navigator.platform).indexOf("Linux") > -1;
if (isLinux) return "Linux";
if (isWin) {
var isWin2K =
sUserAgent.indexOf("Windows NT 5.0") > -1 ||
sUserAgent.indexOf("Windows 2000") > -1;
if (isWin2K) return "Win2000";
var isWinXP =
sUserAgent.indexOf("Windows NT 5.1") > -1 ||
sUserAgent.indexOf("Windows XP") > -1;
if (isWinXP) return "WinXP";
var isWin2003 =
sUserAgent.indexOf("Windows NT 5.2") > -1 ||
sUserAgent.indexOf("Windows 2003") > -1;
if (isWin2003) return "Win2003";
var isWinVista =
sUserAgent.indexOf("Windows NT 6.0") > -1 ||
sUserAgent.indexOf("Windows Vista") > -1;
if (isWinVista) return "WinVista";
var isWin7 =
sUserAgent.indexOf("Windows NT 6.1") > -1 ||
sUserAgent.indexOf("Windows 7") > -1;
if (isWin7) return "Win7";
var isWin10 =
sUserAgent.indexOf("Windows NT 10") > -1 ||
sUserAgent.indexOf("Windows 10") > -1;
if (isWin10) return "Win10";
}
return "other";
}
// 获取浏览器类型
export function getBrowser() {
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
var isOpera = userAgent.indexOf("Opera") > -1; //判断是否Opera浏览器
var isIE =
userAgent.indexOf("compatible") > -1 &&
userAgent.indexOf("MSIE") > -1 &&
!isOpera; //判断是否IE浏览器
var isEdge = userAgent.indexOf("Edge") > -1; //判断是否IE的Edge浏览器
var isFF = userAgent.indexOf("Firefox") > -1; //判断是否Firefox浏览器
var isSafari =
userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Chrome") == -1; //判断是否Safari浏览器
var isChrome =
userAgent.indexOf("Chrome") > -1 && userAgent.indexOf("Safari") > -1; //判断Chrome浏览器
if (isIE) {
var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
reIE.test(userAgent);
var fIEVersion = parseFloat(RegExp["$1"]);
if (fIEVersion == 7) {
return "IE7";
} else if (fIEVersion == 8) {
return "IE8";
} else if (fIEVersion == 9) {
return "IE9";
} else if (fIEVersion == 10) {
return "IE10";
} else if (fIEVersion == 11) {
return "IE11";
} else {
return "0";
} //IE版本过低
return "IE";
}
if (isOpera) {
return "Opera";
}
if (isEdge) {
return "Edge";
}
if (isFF) {
return "FF";
}
if (isSafari) {
return "Safari";
}
if (isChrome) {
return "Chrome";
}
}
// 获取浏览器版本号
export function getBrowseVersion() {
var browser = {};
var userAgent = navigator.userAgent.toLowerCase();
var s;
(s = userAgent.match(/msie ([\d.]+)/))
? (browser.ie = s[1])
: (s = userAgent.match(/firefox\/([\d.]+)/))
? (browser.firefox = s[1])
: (s = userAgent.match(/chrome\/([\d.]+)/))
? (browser.chrome = s[1])
: (s = userAgent.match(/opera.([\d.]+)/))
? (browser.opera = s[1])
: (s = userAgent.match(/version\/([\d.]+).*safari/))
? (browser.safari = s[1])
: 0;
var version = "";
if (browser.ie) {
version = browser.ie;
} else {
if (browser.firefox) {
version = browser.firefox;
} else {
if (browser.chrome) {
version = browser.chrome;
} else {
if (browser.opera) {
version = browser.opera;
} else {
if (browser.safari) {
version = browser.safari;
} else {
version = "未知浏览器";
}
}
}
}
}
return version;
}
// 判断是否为IE或兼容IE内核的浏览器
export function checkBrowserCompatibility() {
var userAgent = navigator.userAgent.toLowerCase();
var isIE = false;
var isCompatibilityMode = false;
// 检查是否为IE11
if (userAgent.indexOf("trident/") > -1) {
var rv = userAgent.match(/rv:(\d+\.\d+)/);
if (rv && parseFloat(rv[1], 10) === 11.0) {
isIE = true;
// 对于IE11,通常没有直接的兼容模式标识,但可以通过document.documentMode来检查
isCompatibilityMode = document.documentMode && document.documentMode < 12;
}
}
// 检查是否为旧版IE(IE10及以下)
else if (userAgent.indexOf("msie ") > -1) {
var ieVersion = userAgent.match(/msie (\d+\.\d+)/);
if (ieVersion) {
isIE = true;
isCompatibilityMode = true;
}
}
return isIE || isCompatibilityMode;
}