900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 五大浏览器js 判断IE Firefox Safari Chrome Opera

五大浏览器js 判断IE Firefox Safari Chrome Opera

时间:2022-08-22 15:02:45

相关推荐

五大浏览器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/070208 Firefox/3.0.1

Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/0309 Firefox/2.0.0.3

Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/0803 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代码Sys={}; varna=navigator.userAgent.toLowerCase(); if(window.<spanstyle="color:#800000;"><strong>activeXObject</strong></span>){//IE Sys.ie=na.match(/msie([\d.]+)/)[1]; }elseif(document.<spanstyle="color:#800000;"><strong>getBoxObjectFor</strong></span>){//Firefox Sys.firefox=na.match(/firefox\/([\d.]+)/)[1]; }elseif(window.<strong><spanstyle="color:#800000;">MessageEvent</span></strong>&&!document.<strong><spanstyle="color:#800000;">getBoxObjectFor</span></strong>){//GoogleChrome Sys.chrome=na.match(/chrome\/([\d.]+)/)[1]; }elseif(window.<strong><spanstyle="color:#800000;">opera</span></strong>){//opera Sys.opera=na.match(/opera.([\d.]+)/)[1]; }elseif(window.<spanstyle="color:#800000;"><strong>openDatabase</strong></span>){//Safari Sys.safari=ua.match(/version\/([\d.]+)/)[1]; } if(Sys.<spanstyle="color:#800000;"><strong>ie</strong></span>)out.print("IE:"+Sys.ie); if(Sys.<spanstyle="color:#800000;"><strong>firefox</strong></span>)out.print("firefox:"+Sys.firefox); if(Sys.<strong><spanstyle="color:#800000;">chrome</span></strong>)out.print("chrome:"+Sys.chrome); if(Sys.<spanstyle="color:#800000;"><strong>opera</strong></span>)out.print("opera:"+Sys.opera); if(Sys.<strong><spanstyle="color:#800000;">safari</span></strong>)out.print("safari:"+Sys.safari);

第二种写法:

Js代码Sys={}; varna=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];

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。