IE

只有IE支持和创建ActiveX控件,因此其他所有浏览器没有的东西,只要判断window对象是否存在ActiveXObject函数,就可以明确判断出当前浏览器是IE。IE各个版本的userAgent如下: 
      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

Firefox中的DOM元素都有一个getBoxObjectFor函数,用来获取该DOM元素的位置和大小(IE对应的中是 getBoundingClientRect函数)。这是Firefox独有的,判断它即可知道是当前浏览器是Firefox。Firefox几个版本的 userAgent大致如下:
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提供了专门的浏览器标志,window.opera属性。Opera的userAgent如下:

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

Safari浏览器中有一个其他浏览器没有的openDatabase函数,可做为判断Safari的标志。Safari典型的userAgent如下:
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

Chrome有一个MessageEvent函数,但Firefox也有。不过,好在Chrome并没有Firefox的getBoxObjectFor函数,根据这个条件还是可以准确判断出Chrome浏览器的。目前,Chrome的userAgent是: 
Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13
其中,版本号在Chrome只后的数字。

有趣的是,Chrome的userAgent还包含了Safari的特征,也许这就是Chrome可以运行所有Apple浏览器应用的基础吧。
只要了解了以上信息,我们就可以根基这些特征来判断浏览器类型及其版本了。

Js代码  
  1. Sys={};
  2. var na=navigator.userAgent.toLowerCase();
  3. if(window.<span style="color: #800000;"><strong>activeXObject</strong></span>){//IE
  4. Sys.ie=na.match(/msie([\d.]+)/)[1];
  5. }else if(document.<span style="color: #800000;"><strong>getBoxObjectFor</strong></span>){//Firefox
  6. Sys.firefox=na.match(/firefox\/([\d.]+)/)[1];
  7. }else if(window.<strong><span style="color: #800000;">MessageEvent</span></strong>&&!document.<strong><span style="color: #800000;">getBoxObjectFor</span></strong>){//Google Chrome
  8. Sys.chrome=na.match(/chrome\/([\d.]+)/)[1];
  9. }else if(window.<strong><span style="color: #800000;">opera</span></strong>){//opera
  10. Sys.opera=na.match(/opera.([\d.]+)/)[1];
  11. } else   if  (window.<span style="color: #800000;"><strong>openDatabase</strong></span>) {//Safari
  12. Sys.safari = ua.match(/version\/([\d.]+)/)[1];
  13. }
  14. if(Sys.<span style="color: #800000;"><strong>ie</strong></span>) out.print("IE:"+Sys.ie);
  15. if(Sys.<span style="color: #800000;"><strong>firefox</strong></span>)out.print("firefox:"+Sys.firefox);
  16. if(Sys.<strong><span style="color: #800000;">chrome</span></strong>)out.print("chrome:"+Sys.chrome);
  17. if(Sys.<span style="color: #800000;"><strong>opera</strong></span>)out.print("opera:"+Sys.opera);
  18. if(Sys.<strong><span style="color: #800000;">safari</span></strong>)out.print("safari:"+Sys.safari);

第二种写法:

Js代码  
  1. Sys={};
  2. var na=navigator.userAgent.toLowerCase();
  3. window.ActiveXObject?Sys.ie=na.match(/msie([\d.]+)/)[1];
  4. document.getBoxObjectFor?Sys.firefox=na.match(/firefox\/([\d.]+)/)[1];
  5. window.MessageEvent&&!document.getBoxObjectFor?Sys.chrome=na.match(/chrome\/([\d.]+)/)[1];
  6. window.opera?Sys.opera=na.match(/opera.([\d.]+)/)[1];
  7. window.openDatabase?Sys.safari=na.match(/version\/([\d.]+)/)[1];

五大浏览器js 判断IE、Firefox、Safari、Chrome、Opera相关推荐

  1. [完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器...

    [完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器 原文:[完美]原生JS获取浏览器版本判 ...

  2. JS判断是否为safari苹果浏览器

    JS判断是否为safari苹果浏览器 <script>//判断非SAFA时用这个if(!(/Safari/.test(navigator.userAgent) && !/C ...

  3. 移动端IOS和androi及浏览器js判断[转载]

    转载自:http://www.niutifa.com/?p=561 移动端IOS和androi及浏览器js判断: <script type="text/javascript" ...

  4. 原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari(亲测可用)

    浏览器类型及版本判断在开发中是比较常见的使用场景,之前用var ua = navigator.userAgent.toLowerCase()来判断浏览器的内核,发现chrome和edge浏览器无法区分 ...

  5. firefox/safari/chrome浏览器模拟iPad的userAgent的方法

    在给 iPad 做的网页进行测试的时候,有时候需要在 PC 上模拟 iPad User Agent 去访问网页,今天就介绍下如何让 Firefox,Chrome,Safari 浏览器模拟 iPad U ...

  6. html判断是否为ie浏览器,js判断IE浏览器(包括IE11)

    做web开发的,因为众所周知的原因,经常需要区别IE及非IE浏览器.其实js判断IE浏览器的方法网上一搜一大把. 这里我要说的是一个用起来比较简单好记且使用的方法,记录如下. 之前,js判断的方式都是 ...

  7. html判断手机浏览器,JS判断浏览器iOS(iPhone)、Android手机移动端

    通过判断浏览器的userAgent,用正则来判断手机是否是ios和Android客户端.网上搜索来的,比较简单: var u = navigator.userAgent; var isAndroid ...

  8. 五大浏览器的历史、差异、对CSS和ES的支持 内核:Trident、Gecko、Blink、Webkit 浏览器:IE Opera Safari Firefox Chrome

    五大浏览器的历史.差异.对CSS和ES的支持 内核:Trident.Gecko.Blink.Webkit 浏览器:IE Opera Safari Firefox Chrome 历史 Internet ...

  9. JS判断是电脑浏览器还是手机浏览器?

    JS判断是电脑浏览器还是手机浏览器? <script type=text/javascript>document.write('你的浏览器标识:',navigator.userAgent, ...

最新文章

  1. php5.4 mysql connect,php5.4 Call to undefined function mysql_connect()
  2. MS SQL入门基础:移动数据库
  3. 微软官方在线免费PPT、简历、Excel报表模板,图片素材
  4. windows不能访问linux服务器,window的vnc客户端无法访问Linux服务端的问题之一
  5. Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析
  6. 如何优化网页转化率?(上篇)
  7. Java实训项目7:GUI学生信息管理系统 - 实现步骤 - 创建实体类
  8. Python在线考试系统防作弊功能的思路和实现
  9. linux ps命令使用详解
  10. hi35xx stmmac网卡驱动源码解读
  11. 今天,一起吐槽容器镜像中那些让人一言难尽的事情
  12. Arduino IDE搭建ESP8266开发环境!文件下载过慢解决方法!
  13. GoDot引擎打包安卓
  14. mysql var和varp的区别_var方差(var和方差的区别)
  15. layui 表格表头最右侧多一列 解决办法
  16. html图片与文字的排版6,HTML文字与排版
  17. 遥感应用中影像最佳波段组合分析详细过程
  18. 各抢票软件的优势,抢火车票成功率高的APP
  19. 预测科技未来发展趋势的10个定律
  20. Landsat 数据集合集(Landsat 5/7/8/9)

热门文章

  1. aisell_EasyPOI 数据导入导出
  2. 美国波多里奇国家质量奖(MBNQA)简介
  3. 3dmark压力测试 linux,拷机还用Furmark? 瞧瞧3DMark压力测试怎样玩
  4. Kodu吃苹果---Kodu少儿编程第六天
  5. html圆形分成六份,在ai里怎么把一个圆平均分成几份
  6. 端午福利怎么发?苏宁大客户帮你“听取掌声一片”
  7. NinePatch图片
  8. 我们是怎么一步步陷入贫穷的
  9. 千兆级LTE的一小步,5G之路的一大步
  10. SQL判断某列中是否包含中文字符、英文字符、纯数字,数据截取