浏览器类型判断(移动/PC)

125 阅读1分钟
// 判断移动端函数
function isMobile() {
	var sUserAgent = navigator.userAgent.toLowerCase();
	var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
	var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
	var bIsMidp = sUserAgent.match(/midp/i) == "midp";
	var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
	var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
	var bIsAndroid = sUserAgent.match(/android/i) == "android";
	var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
	var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
	if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {
		return true;
	} else {
		return false;
	}
}
// 判断PC端函数
function getBrowserInfo() {
	let userAgent = navigator.userAgent;
	let version = "null_0";
	if (/opera/i.test(userAgent) || /OPR/i.test(userAgent)) {
		version = getVersion(userAgent, "OPR/(\\d+\\.+\\d+)");
		return "Opera_" + version;
	} else if (/compatible/i.test(userAgent) && /MSIE/i.test(userAgent)) {
		version = getVersion(userAgent, "MSIE (\\d+\\.+\\d+)");
		return "IE_" + version;
	} else if (/Edg/i.test(userAgent)) {
		version = getVersion(userAgent, "Edg/(\\d+\\.+\\d+)");
		return "Edge_" + version;
	} else if (/Firefox/i.test(userAgent)) {
		version = getVersion(userAgent, "Firefox/(\\d+\\.+\\d+)");
		return "Firefox_" + version;
	} else if (/Safari/i.test(userAgent) && !/Chrome/i.test(userAgent)) {
		version = getVersion(userAgent, "Safari/(\\d+\\.+\\d+)");
		return "Safari_" + version;
	} else if (/Chrome/i.test(userAgent) && /Safari/i.test(userAgent) && !/Edg/i.test(userAgent)) {
		version = getVersion(userAgent, "Chrome/(\\d+\\.+\\d+)");
		return "Chrome_" + version;
	} else if (!!window.ActiveXObject || "ActiveXObject" in window) {
		version = 11;
		return "IE_" + version;
	}
	return version;
}

function getVersion(userAgent, reg) {
	var reBrowser = new RegExp(reg);
	reBrowser.test(userAgent);
	return parseFloat(RegExp["$1"]);
}