浏览器嗅探器(转)

浏览器检测是在工作中经常用到的,如果只是简单判断当前是什么浏览器的话可以通过window.navigator.useragent这样的js来直接判断就可以了!

但是针对浏览器版本要求比较高的时候,如果只是单纯的判断浏览器的名字的话还不能解决问题,这时候就要通过其他方式来实现!现有的jquery已经废弃了$.browser的使用,所以在这里我介绍一个叫做"浏览器嗅探器"的程序来实现!

代码如下:(BrowserDetect.js)


  1. var BrowserDetect = {
  2. init: function () {
  3. this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
  4. this.version = this.searchVersion(navigator.userAgent)
  5. || this.searchVersion(navigator.appVersion)
  6. || "an unknown version";
  7. this.OS = this.searchString(this.dataOS) || "an unknown OS";
  8. },
  9. searchString: function (data) {
  10. for (var i=0;i<data.length;i++) {
  11. var dataString = data[i].string;
  12. var dataProp = data[i].prop;
  13. this.versionSearchString = data[i].versionSearch || data[i].identity;
  14. if (dataString) {
  15. if (dataString.indexOf(data[i].subString) != -1)
  16. return data[i].identity;
  17. }
  18. else if (dataProp)
  19. return data[i].identity;
  20. }
  21. },
  22. searchVersion: function (dataString) {
  23. var index = dataString.indexOf(this.versionSearchString);
  24. if (index == -1) return;
  25. return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
  26. },
  27. dataBrowser: [
  28. {
  29. string: navigator.userAgent,
  30. subString: "Chrome",
  31. identity: "Chrome"
  32. },
  33. { string: navigator.userAgent,
  34. subString: "OmniWeb",
  35. versionSearch: "OmniWeb/",
  36. identity: "OmniWeb"
  37. },
  38. {
  39. string: navigator.vendor,
  40. subString: "Apple",
  41. identity: "Safari",
  42. versionSearch: "Version"
  43. },
  44. {
  45. prop: window.opera,
  46. identity: "Opera"
  47. },
  48. {
  49. string: navigator.vendor,
  50. subString: "iCab",
  51. identity: "iCab"
  52. },
  53. {
  54. string: navigator.vendor,
  55. subString: "KDE",
  56. identity: "Konqueror"
  57. },
  58. {
  59. string: navigator.userAgent,
  60. subString: "Firefox",
  61. identity: "Firefox"
  62. },
  63. {
  64. string: navigator.vendor,
  65. subString: "Camino",
  66. identity: "Camino"
  67. },
  68. { // for newer Netscapes (6+)
  69. string: navigator.userAgent,
  70. subString: "Netscape",
  71. identity: "Netscape"
  72. },
  73. {
  74. string: navigator.userAgent,
  75. subString: "MSIE",
  76. identity: "Internet Explorer",
  77. versionSearch: "MSIE"
  78. },
  79. {
  80. string: navigator.userAgent,
  81. subString: "Gecko",
  82. identity: "Mozilla",
  83. versionSearch: "rv"
  84. },
  85. { // for older Netscapes (4-)
  86. string: navigator.userAgent,
  87. subString: "Mozilla",
  88. identity: "Netscape",
  89. versionSearch: "Mozilla"
  90. }
  91. ],
  92. dataOS : [
  93. {
  94. string: navigator.platform,
  95. subString: "Win",
  96. identity: "Windows"
  97. },
  98. {
  99. string: navigator.platform,
  100. subString: "Mac",
  101. identity: "Mac"
  102. },
  103. {
  104. string: navigator.userAgent,
  105. subString: "iPhone",
  106. identity: "iPhone/iPod"
  107. },
  108. {
  109. string: navigator.platform,
  110. subString: "Linux",
  111. identity: "Linux"
  112. }
  113. ]
  114. };
  115. BrowserDetect.init();

使用方式如下:

这个js兼容非常不错!使用起来比较简单,而且功能强大!

原文地址:https://www.cnblogs.com/hyds/p/11069790.html

时间: 2024-10-28 23:34:09

浏览器嗅探器(转)的相关文章

浏览器嗅探器【检测】

在前端开发中经常会遇到一系列兼容性问题,怎样精准地识别出各个浏览器的版本是一件很头痛的问题.下面跟大家分享图个非常实用的浏览器嗅探器的插件,可以让我们在开发中针对各种浏览器作出不同的流程控制.实现浏览器兼容. 代码如下: var BrowserDetect = { init: function () { this.browser = this.searchString(this.dataBrowser) || "An unknown browser"; this.version = t

浏览器检测(BrowserDetect.js)

浏览器检测是在工作中经常用到的,如果只是简单判断当前是什么浏览器的话可以通过window.navigator.useragent这样的js来直接判断就可以了! 但是针对浏览器版本要求比较高的时候,如果只是单纯的判断浏览器的名字的话还不能解决问题,这时候就要通过其他方式来实现!现有的jquery已经废弃了$.browser的使用,所以在这里我介绍一个叫做"浏览器嗅探器"的程序来实现! 代码如下:(BrowserDetect.js) var BrowserDetect = { init:

Web浏览器中的JavaScript(二)

客户端Javascript时间线: 1)  Web浏览器创建Document对象,并开始解析Web页面,解析html元素和它们的文本内容后添加Element对象和Text节点到文档中.在这个阶段documen.readystate属性值是"loading" 2)  当HTML解析器遇到没有async和defer属性的<script>元素时,它把这些元素添加到文档中,然后执行行内或外部脚本.这些脚本会同步执行,并且在脚本下载(如果需要)和执行时解析器会暂停.这样脚本就可以用d

浏览器检测(BrowserDetect.js)使用

浏览器检测是在工作中经常用到的,如果只是简单判断当前是什么浏览器的话可以通过window.navigator.useragent这样的js来直接判断就可以了! 但是针对浏览器版本要求比较高的时候,如果只是单纯的判断浏览器的名字的话还不能解决问题,这时候就要通过其他方式来实现!现有的jquery已经废弃了$.browser的使用,所以在这里我介绍一个叫做"浏览器嗅探器"的程序来实现! 代码如下:(BrowserDetect.js) var BrowserDetect = { init:

JavaScript浏览器检测之navigator 对象

一.使用客户端检测的原因 由于每个浏览器都具有自己独到的扩展,所以在开发阶段来判断浏览器是一个非常重要的步骤. 虽然浏览器开发商在公共接口方面投入了很多精力,努力的去支持最常用的公共功能: 但在现实中,浏览器之间的差异,以及不同浏览器的“怪癖”却是非常多的,因此客户端检测除了是一种补救措施,更是一种行之有效的开发策略. 二.navigator 对象概述 navigator 对象最早由 Netscape Navigator2.0 引入的 navigator 对象,现在已经成为识别客户端浏览器的事实

【JavaScript 封装库】BETA 4.0 测试版发布!

1 /* 2 源码作者: 石不易(Louis Shi) 3 联系方式: http://www.shibuyi.net 4 =================================================================================================== 5 程序名称: JavaScript 封装库 BETA 4.0 版 6 迭代版本: BETA 3.0 7 插件总数: 12 个 8 库方法数: 26 个 9 功能总数: 67 个

【JavaScript 封装库】BETA 3.0 测试版发布!

1 /* 2 源码作者: 石不易(Louis Shi) 3 联系方式: http://www.shibuyi.net 4 =================================================================================================== 5 程序名称: JavaScript 封装库 BETA 3.0 版 6 迭代版本: BETA 2.0 7 插件总数: 8 个 8 库方法数: 20 个 9 功能总数: 48 个

浏览器简易嗅探器

document.write(navigator.userAgent); document.write('<br/>'); document.write(navigator.platform); var client = function(){ //引擎 var engine = { ie:false, gecko:false, khtml:false, opera:false, webkit:false, ver:0 }; //浏览器 var browser = { ie:false, fi

使用 Chrome 浏览器插件 Web Scraper 10分钟轻松实现网页数据的爬取

本文标签: WebScraper Chrome浏览器插件 网页数据的爬取 使用Chrome 浏览器插件 Web Scraper 可以轻松实现网页数据的爬取,不写代码,鼠标操作,点哪爬哪,还不用考虑爬虫中的登陆.验证码.异步加载等复杂问题. Web Scraper插件 Web Scraper 官网中的简介: Web Scraper Extension (Free!)Using our extension you can create a plan (sitemap) how a web site