五大浏览器js 判断IE、Firefox、Safari、Chrome、Opera
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浏览器应用的基础吧。
只要了解了以上信息,我们就可以根基这些特征来判断浏览器类型及其版本了。
![](http://leiwuluan.iteye.com/images/icon_star.png)
- Sys={};
- var na=navigator.userAgent.toLowerCase();
- if(window.<span style="color: #800000;"><strong>activeXObject</strong></span>){//IE
- Sys.ie=na.match(/msie([\d.]+)/)[1];
- }else if(document.<span style="color: #800000;"><strong>getBoxObjectFor</strong></span>){//Firefox
- Sys.firefox=na.match(/firefox\/([\d.]+)/)[1];
- }else if(window.<strong><span style="color: #800000;">MessageEvent</span></strong>&&!document.<strong><span style="color: #800000;">getBoxObjectFor</span></strong>){//Google Chrome
- Sys.chrome=na.match(/chrome\/([\d.]+)/)[1];
- }else if(window.<strong><span style="color: #800000;">opera</span></strong>){//opera
- Sys.opera=na.match(/opera.([\d.]+)/)[1];
- } else if (window.<span style="color: #800000;"><strong>openDatabase</strong></span>) {//Safari
- Sys.safari = ua.match(/version\/([\d.]+)/)[1];
- }
- if(Sys.<span style="color: #800000;"><strong>ie</strong></span>) out.print("IE:"+Sys.ie);
- if(Sys.<span style="color: #800000;"><strong>firefox</strong></span>)out.print("firefox:"+Sys.firefox);
- if(Sys.<strong><span style="color: #800000;">chrome</span></strong>)out.print("chrome:"+Sys.chrome);
- if(Sys.<span style="color: #800000;"><strong>opera</strong></span>)out.print("opera:"+Sys.opera);
- if(Sys.<strong><span style="color: #800000;">safari</span></strong>)out.print("safari:"+Sys.safari);
第二种写法:
![](http://leiwuluan.iteye.com/images/icon_star.png)
- Sys={};
- var na=navigator.userAgent.toLowerCase();
- window.ActiveXObject?Sys.ie=na.match(/msie([\d.]+)/)[1];
- document.getBoxObjectFor?Sys.firefox=na.match(/firefox\/([\d.]+)/)[1];
- window.MessageEvent&&!document.getBoxObjectFor?Sys.chrome=na.match(/chrome\/([\d.]+)/)[1];
- window.opera?Sys.opera=na.match(/opera.([\d.]+)/)[1];
- window.openDatabase?Sys.safari=na.match(/version\/([\d.]+)/)[1];
五大浏览器js 判断IE、Firefox、Safari、Chrome、Opera相关推荐
- [完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器...
[完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器 原文:[完美]原生JS获取浏览器版本判 ...
- JS判断是否为safari苹果浏览器
JS判断是否为safari苹果浏览器 <script>//判断非SAFA时用这个if(!(/Safari/.test(navigator.userAgent) && !/C ...
- 移动端IOS和androi及浏览器js判断[转载]
转载自:http://www.niutifa.com/?p=561 移动端IOS和androi及浏览器js判断: <script type="text/javascript" ...
- 原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari(亲测可用)
浏览器类型及版本判断在开发中是比较常见的使用场景,之前用var ua = navigator.userAgent.toLowerCase()来判断浏览器的内核,发现chrome和edge浏览器无法区分 ...
- firefox/safari/chrome浏览器模拟iPad的userAgent的方法
在给 iPad 做的网页进行测试的时候,有时候需要在 PC 上模拟 iPad User Agent 去访问网页,今天就介绍下如何让 Firefox,Chrome,Safari 浏览器模拟 iPad U ...
- html判断是否为ie浏览器,js判断IE浏览器(包括IE11)
做web开发的,因为众所周知的原因,经常需要区别IE及非IE浏览器.其实js判断IE浏览器的方法网上一搜一大把. 这里我要说的是一个用起来比较简单好记且使用的方法,记录如下. 之前,js判断的方式都是 ...
- html判断手机浏览器,JS判断浏览器iOS(iPhone)、Android手机移动端
通过判断浏览器的userAgent,用正则来判断手机是否是ios和Android客户端.网上搜索来的,比较简单: var u = navigator.userAgent; var isAndroid ...
- 五大浏览器的历史、差异、对CSS和ES的支持 内核:Trident、Gecko、Blink、Webkit 浏览器:IE Opera Safari Firefox Chrome
五大浏览器的历史.差异.对CSS和ES的支持 内核:Trident.Gecko.Blink.Webkit 浏览器:IE Opera Safari Firefox Chrome 历史 Internet ...
- JS判断是电脑浏览器还是手机浏览器?
JS判断是电脑浏览器还是手机浏览器? <script type=text/javascript>document.write('你的浏览器标识:',navigator.userAgent, ...
最新文章
- php5.4 mysql connect,php5.4 Call to undefined function mysql_connect()
- MS SQL入门基础:移动数据库
- 微软官方在线免费PPT、简历、Excel报表模板,图片素材
- windows不能访问linux服务器,window的vnc客户端无法访问Linux服务端的问题之一
- Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析
- 如何优化网页转化率?(上篇)
- Java实训项目7:GUI学生信息管理系统 - 实现步骤 - 创建实体类
- Python在线考试系统防作弊功能的思路和实现
- linux ps命令使用详解
- hi35xx stmmac网卡驱动源码解读
- 今天,一起吐槽容器镜像中那些让人一言难尽的事情
- Arduino IDE搭建ESP8266开发环境!文件下载过慢解决方法!
- GoDot引擎打包安卓
- mysql var和varp的区别_var方差(var和方差的区别)
- layui 表格表头最右侧多一列 解决办法
- html图片与文字的排版6,HTML文字与排版
- 遥感应用中影像最佳波段组合分析详细过程
- 各抢票软件的优势,抢火车票成功率高的APP
- 预测科技未来发展趋势的10个定律
- Landsat 数据集合集(Landsat 5/7/8/9)