总结了一个JavaScript获取当前终端类型(pc, mobile),操作系统类型,浏览器类型,浏览器版本的小工具。
个人觉得还行,测试过没有问题,能识别ie7以及以上。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
/** 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;
}
}
} |