首页 > 网站 > WEB开发 > 正文

JavaScript判断浏览器类型及版本

2024-04-27 14:21:47
字体:
来源:转载
供稿:网友

javaScript判断浏览器类型及版本

说明:以下内容参考了一些网上资料以及同事间的一些讨论。

浏览器对于我们来说,可能是最熟悉的工具了。记得最早那会Netscape,到后来的Internet Explorer一统江湖,再到现在的Firefox大行其道,浏览器市场的争夺,可谓是硝烟弥漫。除了我们常见的IE, Firefox, Opera, Safari四大金刚以外,新近又出了一位Chrome,虽然新出,但是出于Google这个名门,Chrome所受到的关注绝不亚于先前的四大金刚,看来以后要改为5朵金花了,呵呵。除了这些熟知的浏览器以外,据说世界上还有近百种浏览器(汗!!套用一句话:世界上怎么有这么多人喜欢重复发明轮子呢?O(∩_∩)O哈哈~)。 在我们的产品开发过程中,经常要考虑浏览器兼容问题,以适应不同的用户人群,同时也减少因浏览器兼容问题所带来的服务量。一般来说,通过Javascript判断浏览器类型,我们通常使用两种方法,一种是根据各种浏览器独有的属性来分辨,另一种是通过分析浏览器的user-Agent属性来判断的。在许多情况下,值判断出浏览器类型之后,还需判断浏览器版本才能处理兼容性问题,而判断浏览器的版本一般只能通过分析浏览器的User-Agent才能知道。现在比较流行的javascript框架,都有浏览器兼容的判断代码,像jquery、YUI就是使用User-Agent,而Mootools则是使用用各种浏览器独有的属性来分辨。 先来看看什么是User-Agent?User-Agent是HTTP请求中的用户标识,一般发送一个能够代表客户端类型的字符串,比如浏览器类型 操作系统等信息。User-Agent 的约定格式是:应用名,跟一个斜线,跟版本号,剩下的是自由的格式。 我们先来看一下五朵金花的User-Agent: IE Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Mozilla/4.0 (compatible; MSIE 5.0; Windows NT) 其中,版本号是MSIE之后的数字。 Firefox Mozilla/5.0 (Windows; U; Windows NT 5.2) Gecko/2008070208 Firefox/3.0.1 Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070309 Firefox/2.0.0.3 Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070803 Firefox/1.5.0.12 其中,版本号是Firefox之后的数字。 Opera Opera/9.27 (Windows NT 5.2; U; zh-cn) Opera/8.0 (Macintosh; PPC Mac OS X; U; en) Mozilla/5.0 (Macintosh; PPC Mac OS X; U; en) Opera 8.0 其中,版本号是靠近Opera的数字。 Safari Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1 Safari/525.13 Mozilla/5.0 (iPhone; U; CPU like Mac OS X) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93 Safari/419.3 其版本号是Version之后的数字。 Chrome Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13 其中,版本号在Chrome只后的数字。

一.基于User-Agent信息的实现

Js代码收藏代码
  1. varSys={};
  2. varua=navigator.userAgent.toLowerCase();
  3. vars;
  4. (s=ua.match(/msie([/d.]+)/))?Sys.ie=s[1]:
  5. (s=ua.match(/firefox//([/d.]+)/))?Sys.firefox=s[1]:
  6. (s=ua.match(/chrome//([/d.]+)/))?Sys.chrome=s[1]:
  7. (s=ua.match(/opera.([/d.]+)/))?Sys.opera=s[1]:
  8. (s=ua.match(/version//([/d.]+).*safari/))?Sys.safari=s[1]:0;
  9. //以下进行测试
  10. if(Sys.ie)document.write('IE:'+Sys.ie);
  11. if(Sys.firefox)document.write('Firefox:'+Sys.firefox);
  12. if(Sys.chrome)document.write('Chrome:'+Sys.chrome);
  13. if(Sys.opera)document.write('Opera:'+Sys.opera);
  14. if(Sys.safari)document.write('Safari:'+Sys.safari);

二.根据浏览器特有属性判断

Mootools实现代码代码收藏代码
  1. varBrowser={
  2. Engine:{name:'unknown',version:0},
  3. Features:{
  4. xpath:!!(document.evaluate),//是否支持XPath
  5. air:!!(window.runtime),//是否支持Air扩展
  6. query:!!(document.querySelector)//是否支持CSS选择器
  7. },
  8. Engines:{
  9. //判断Opera
  10. PResto:function(){
  11. return(!window.opera)?false:((arguments.callee.caller)?960:((docume
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表