总结了一个JavaScript获取当前终端类型(pc, mobile),操作系统类型,浏览器类型,浏览器版本的小工具。
个人觉得还行,测试过没有问题,能识别ie7以及以上。
/**
author: Weihuan
date: 2017-6-26
**/
var _AgentInfo = {
deviceType: "", // pc or mobile
OSname: "", // windows, Android, linux and so on...
browserName: "", // chrome, safari, firefox, IE and so on...
browserVer: "", // browser version, important if in IE environment.
adaptType: 0, // A type value, Adapt to the screen due to width
_init: function(){
_AgentInfo.setDeviceAndOS();
_AgentInfo.setBrowser();
},
setDeviceAndOS: function(){
var name = "unknown";
if(window.navigator.userAgent.indexOf("Android") != -1){
name = "Android";
}else if(window.navigator.userAgent.indexOf("iPhone") != -1){
name = "iPhone";
}else if(window.navigator.userAgent.indexOf("SymbianOS") != -1){
name = "SymbianOS";
}else if(window.navigator.userAgent.indexOf("Windows Phone") != -1){
name = "Windows Phone";
}else if(window.navigator.userAgent.indexOf("iPad") != -1){
name = "iPad";
}else if(window.navigator.userAgent.indexOf("iPod") != -1){
name = "iPod";
}
if(name != "unknown"){
_AgentInfo.OSname = name;
_AgentInfo.deviceType = "mobile";
return;
}
if (window.navigator.userAgent.indexOf("Windows NT 10.0")!= -1){
name="Windows 10";
}else if (window.navigator.userAgent.indexOf("Windows NT 6.2") != -1){
name="Windows 8";
}else if (window.navigator.userAgent.indexOf("Windows NT 6.1") != -1){
name="Windows 7";
}else if (window.navigator.userAgent.indexOf("Windows NT 6.0") != -1){
name="Windows Vista";
}else if (window.navigator.userAgent.indexOf("Windows NT 5.1") != -1){
name="Windows XP";
}else if (window.navigator.userAgent.indexOf("Windows NT 5.0") != -1){
name="Windows 2000";
}else if (window.navigator.userAgent.indexOf("Mac") != -1){
name="Mac/iOS";
}else if (window.navigator.userAgent.indexOf("X11") != -1){
name="UNIX";
}else if (window.navigator.userAgent.indexOf("Linux") != -1){
name="Linux";
}
_AgentInfo.OSname = name;
_AgentInfo.deviceType = "pc";
},
setBrowser: function(){
var nAgt = navigator.userAgent;
var browserName = navigator.appName;
var fullVersion = ‘‘+parseFloat(navigator.appVersion);
var majorVersion = parseInt(navigator.appVersion,10);
var nameOffset,verOffset,ix;
if ((verOffset=nAgt.indexOf("Opera"))!=-1) { // In Opera, the true version is after "Opera" or after "Version"
browserName = "Opera";
fullVersion = nAgt.substring(verOffset+6);
if ((verOffset=nAgt.indexOf("Version"))!=-1)
fullVersion = nAgt.substring(verOffset+8);
}
else if ( (nAgt.indexOf("Trident"))!=-1 ) { // ( ver >= ie7) In MSIE, the true version is after "MSIE" in userAgent
if((verOffset=nAgt.indexOf("MSIE"))!=-1){
fullVersion = nAgt.substring(verOffset+5);
}else {
fullVersion = ‘11.0‘;
}
if(fullVersion == 5){
fullVersion = "11.0";
}
browserName = "IE";
}
else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) { // In Chrome, the true version is after "Chrome"
browserName = "Chrome";
fullVersion = nAgt.substring(verOffset+7);
}
else if ((verOffset=nAgt.indexOf("Safari"))!=-1) { // In Safari, the true version is after "Safari" or after "Version"
browserName = "Safari";
fullVersion = nAgt.substring(verOffset+7);
if ((verOffset=nAgt.indexOf("Version"))!=-1)
fullVersion = nAgt.substring(verOffset+8);
}
else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) { // In Firefox, the true version is after "Firefox"
browserName = "Firefox";
fullVersion = nAgt.substring(verOffset+8);
}
else if ( (nameOffset=nAgt.lastIndexOf(‘ ‘)+1) < (verOffset=nAgt.lastIndexOf(‘/‘)) ){ // In most other browsers, "name/version" is at the end of userAgent
browserName = nAgt.substring(nameOffset,verOffset);
fullVersion = nAgt.substring(verOffset+1);
if (browserName.toLowerCase()==browserName.toUpperCase()) {
browserName = navigator.appName;
}
}
if ((ix=fullVersion.indexOf(";"))!=-1) // trim the fullVersion string at semicolon/space if present
fullVersion=fullVersion.substring(0,ix);
if ((ix=fullVersion.indexOf(" "))!=-1)
fullVersion=fullVersion.substring(0,ix);
majorVersion = parseInt(‘‘+fullVersion,10);
if (isNaN(majorVersion)) {
fullVersion = ‘‘+parseFloat(navigator.appVersion);
majorVersion = parseInt(navigator.appVersion,10);
}
_AgentInfo.browserName = browserName;
_AgentInfo.browserVer = fullVersion;
},
isMobile: function(){
if(_AgentInfo.deviceType == "mobile"){
return true;
}
return false;
},
setAdaptType(){ // A type value, Adapt to the screen due to width. For convenient
if(screen.width <= 374){
_AgentInfo.adaptType = 0;
}else if(screen.width <= 413){
_AgentInfo.adaptType = 1;
}else {
_AgentInfo.adaptType = 2;
}
}
}
_AgentInfo._init();
原文:http://www.cnblogs.com/weihuan098/p/7082688.html