window.navigator表示浏览器信息

  1. window.navigator;
  2. // window 也可以省略
  3. navigator;

属性

navigator常用的属性

属性 说明
appCodeName 返回浏览器的代码名
appName 返回浏览器的名称
appVersion 返回浏览器的平台和版本信息
cookieEnabled 返回指明浏览器中是否启用 cookie 的布尔值
platform 返回运行浏览器的操作系统平台
userAgent 回浏览器的用户代理字符串
connection 返回浏览器的网络信息(适用于移动端)
onLine 返回浏览器是否联网
  1. console.log(navigator);
  2. console.log(navigator.userAgent);
  3. // 返回浏览器信息
  4. // 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'
  5. // 'Mozilla/5.0' 浏览器的代码
  6. // Macintosh 允许平台
  7. // AppleWebKit 浏览器内核
  8. // Chrome 浏览器及版本

来个超详细的获取浏览器信息的工具函数:

  1. function checkBrowser(){
  2. var nVer = navigator.appVersion,
  3. nAgt = navigator.userAgent,
  4. browser = navigator.appName,
  5. version = '' + parseFloat(navigator.appVersion),
  6. majorVersion,
  7. nameOffset,
  8. verOffset,
  9. ix,
  10. network = 'unknown';
  11. // Opera浏览器(老版本)
  12. if ((verOffset = nAgt.indexOf('Opera')) != -1) {
  13. browser = 'Opera';
  14. version = nAgt.substring(verOffset + 6);
  15. if ((verOffset = nAgt.indexOf('Version')) != -1) {
  16. version = nAgt.substring(verOffset + 8);
  17. }
  18. }
  19. // Opera浏览器(新版本)
  20. if ((verOffset = nAgt.indexOf('OPR')) != -1) {
  21. browser = 'Opera';
  22. version = nAgt.substring(verOffset + 4);
  23. }
  24. // IE浏览器
  25. else if ((verOffset = nAgt.indexOf('MSIE')) != -1) {
  26. browser = 'Microsoft Internet Explorer';
  27. version = nAgt.substring(verOffset + 5);
  28. }
  29. // Chrome浏览器
  30. else if ((verOffset = nAgt.indexOf('Chrome')) != -1) {
  31. browser = 'Chrome';
  32. version = nAgt.substring(verOffset + 7);
  33. }
  34. // Safari浏览器
  35. else if ((verOffset = nAgt.indexOf('Safari')) != -1) {
  36. browser = 'Safari';
  37. version = nAgt.substring(verOffset + 7);
  38. if ((verOffset = nAgt.indexOf('Version')) != -1) {
  39. version = nAgt.substring(verOffset + 8);
  40. }
  41. }
  42. // Firefox浏览器
  43. else if ((verOffset = nAgt.indexOf('Firefox')) != -1) {
  44. browser = 'Firefox';
  45. version = nAgt.substring(verOffset + 8);
  46. }
  47. // IE11+浏览器
  48. else if (nAgt.indexOf('Trident/') != -1) {
  49. browser = 'Microsoft Internet Explorer';
  50. version = nAgt.substring(nAgt.indexOf('rv:') + 3);
  51. }
  52. // 微信浏览器
  53. else if (nAgt.indexOf('NetType/') != -1) {
  54. browser = 'WeiXin';
  55. if (nAgt.indexOf('NetType/WIFI') != -1) {
  56. network = 'WIFI';
  57. }else if(nAgt.indexOf('NetType/2G') != -1) {
  58. network = '2G';
  59. }else if(nAgt.indexOf('NetType/3G+') != -1) {
  60. network = '3G+';
  61. }
  62. verOffset = nAgt.lastIndexOf('/')
  63. version = nAgt.substring(verOffset + 1);
  64. if (browser.toLowerCase() == browser.toUpperCase()) {
  65. browser = navigator.appName;
  66. }
  67. }
  68. //其他浏览器
  69. else if ((nameOffset = nAgt.lastIndexOf(' ') + 1) < (verOffset = nAgt.lastIndexOf('/'))) {
  70. browser = nAgt.substring(nameOffset, verOffset);
  71. version = nAgt.substring(verOffset + 1);
  72. if (browser.toLowerCase() == browser.toUpperCase()) {
  73. browser = navigator.appName;
  74. }
  75. }
  76. //版本字符串整理
  77. if ((ix = version.indexOf(';')) != -1) version = version.substring(0, ix);
  78. if ((ix = version.indexOf(' ')) != -1) version = version.substring(0, ix);
  79. if ((ix = version.indexOf(')')) != -1) version = version.substring(0, ix);
  80. majorVersion = parseInt('' + version, 10);
  81. if (isNaN(majorVersion)) {
  82. version = '' + parseFloat(navigator.appVersion);
  83. majorVersion = parseInt(navigator.appVersion, 10);
  84. }
  85. //移动版本
  86. var mobile = /Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(nVer);
  87. //系统探测
  88. var os = '';
  89. var clientStrings = [
  90. {s: 'Windows 10', r: /(Windows 10.0|Windows NT 10.0)/},
  91. {s: 'Windows 8.1', r: /(Windows 8.1|Windows NT 6.3)/},
  92. {s: 'Windows 8', r: /(Windows 8|Windows NT 6.2)/},
  93. {s: 'Windows 7', r: /(Windows 7|Windows NT 6.1)/},
  94. {s: 'Windows Vista', r: /Windows NT 6.0/},
  95. {s: 'Windows Server 2003', r: /Windows NT 5.2/},
  96. {s: 'Windows XP', r: /(Windows NT 5.1|Windows XP)/},
  97. {s: 'Windows 2000', r: /(Windows NT 5.0|Windows 2000)/},
  98. {s: 'Windows ME', r: /(Win 9x 4.90|Windows ME)/},
  99. {s: 'Windows 98', r: /(Windows 98|Win98)/},
  100. {s: 'Windows 95', r: /(Windows 95|Win95|Windows_95)/},
  101. {s: 'Windows NT 4.0', r: /(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},
  102. {s: 'Windows CE', r: /Windows CE/},
  103. {s: 'Windows 3.11', r: /Win16/},
  104. {s: 'Android', r: /Android/},
  105. {s: 'Open BSD', r: /OpenBSD/},
  106. {s: 'Sun OS', r: /SunOS/},
  107. {s: 'Linux', r: /(Linux|X11)/},
  108. {s: 'iOS', r: /(iPhone|iPad|iPod)/},
  109. {s: 'Mac OS X', r: /Mac OS X/},
  110. {s: 'Mac OS', r: /(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},
  111. {s: 'QNX', r: /QNX/},
  112. {s: 'UNIX', r: /UNIX/},
  113. {s: 'BeOS', r: /BeOS/},
  114. {s: 'OS/2', r: /OS\/2/},
  115. {s: 'Search Bot', r: /(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/}
  116. ];
  117. for (var id in clientStrings) {
  118. var cs = clientStrings[id];
  119. if (cs.r.test(nAgt)) {
  120. os = cs.s;
  121. break;
  122. }
  123. }
  124. var osVersion = '';
  125. if (/Windows/.test(os)) {
  126. osVersion = /Windows (.*)/.exec(os)[1];
  127. os = 'Windows';
  128. }
  129. switch (os) {
  130. case 'Mac OS X':
  131. osVersion = /Mac OS X (10[\.\_\d]+)/.exec(nAgt)[1];
  132. break;
  133. case 'Android':
  134. osVersion = /Android ([\.\_\d]+)/.exec(nAgt)[1];
  135. break;
  136. case 'iOS':
  137. osVersion = /OS (\d+)_(\d+)_?(\d+)?/.exec(nVer);
  138. osVersion = osVersion[1] + '.' + osVersion[2] + '.' + (osVersion[3] | 0);
  139. break;
  140. }
  141. //返回数据集合
  142. return {
  143. //操作系统
  144. os: os,
  145. //操作系统版本
  146. osVersion: osVersion ? osVersion : 'unknown',
  147. //是否移动端访问
  148. mobile: mobile,
  149. //浏览器类型
  150. browser: browser,
  151. //浏览器版本
  152. browserVersion: version,
  153. //浏览器major版本
  154. browserMajorVersion: majorVersion
  155. };
  156. }

方法

常用的方法:

方法 说明
vibrate() 触发手机震动