欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaScript判断IE版本型号

程序员文章站 2023-01-20 23:34:23
下面通过代码给大家讲解下,具体请看下文: ie浏览器与非ie浏览器的区别是ie浏览器支持activexobject,但是非ie浏览器不支持activexobject。在i...

下面通过代码给大家讲解下,具体请看下文:

ie浏览器与非ie浏览器的区别是ie浏览器支持activexobject,但是非ie浏览器不支持activexobject。在ie11浏览器还没出现的时候我们判断ie和非ie经常是这么写的

复制代码 代码如下:

function isie(){
     return window.activexobject ? true : false;
 }

但是在ie11中上面判断的返回的是false,我自己在ie11测试了下如下代码:

复制代码 代码如下:

 alert(window.activexobject);
 alert(typeof window.activexobject);

这是为什么呢?明明activexobject是存在的,怎么就typeof的结果确实undefined。哪位知道结果的告诉我这是为什么呢?为神马?

微软上的官网说出了ie11的activexobject的不同。

 

复制代码 代码如下:

alert("activexobject" in window)//在ie11下返回的是true

下面就直接给出兼容ie11判断ie与非ie浏览器的方法。

复制代码 代码如下:

 function isie(){
    return ("activexobject" in window);
 }

判断ie6浏览器

从ie7开始ie是支持xmlhttprequest对象的,唯独ie6是不支持的。根据这个特性和前面判断ie的函数isie()我们就知道怎么判断ie6了吧。判断方法如下:

复制代码 代码如下:

 function isie6() {
    // ie6是不支持window.xmlhttprequest的
    return isie() && !window.xmlhttprequest;
 }

判断ie7浏览器

因为从ie8开始是支持文档模式的,它支持document.documentmode。ie7是不支持的,但是ie7是支持xmlhttprequest对象的。判断方法如下:

 

复制代码 代码如下:

function isie7() {
     //只有ie8+才支持document.documentmode
     return isie() && window.xmlhttprequest && !document.documentmode;
 }

判断ie8浏览器

在从ie9开始,微软慢慢的靠近标准,我们把ie678称为非标准浏览器,ie9+与其他如chrome,firefox浏览器称为标准浏览器。两者的区别其中有一个是alert(-[1,]);//在ie678中打印的是nan,但是在标准浏览器打印的是-1

那么我们就可以根据上面的区别来判断是ie8浏览器。方法如下:

 

function isie8(){
  // alert(!-[1,])//->ie678返回nan 所以!nan为true 标准浏览器返回-1 所以!-1为false
  return isie() &&!-[1,]&&document.documentmode;
 }

判断ie9、ie10、ie11浏览器

从ie8浏览器是支持json内置对象的,从ie10开始支持js的严格模式。ie9+下alert(!-[1,])返回的是false,ie9+是支持addeventlistener的,但是ie11浏览器中是不支持原来ie中独有的事件绑定attachevent。根据这些区别我们就能区分出ie9、ie10、ie11浏览器了。

判断其他浏览器

//检测函数
 var check = function(r) {
   return r.test(navigator.useragent.tolowercase());
 };
 var statics = {
   /**
   * 是否为webkit内核的浏览器
   */
   iswebkit : function() {
     return check(/webkit/);
   },
   /**
   * 是否为火狐浏览器
   */
   isfirefox : function() {
     return check(/firefox/);
   },
   /**
   * 是否为谷歌浏览器
   */
   ischrome : function() {
     return !statics.isopera() && check(/chrome/);
   },
   /**
   * 是否为opera浏览器
   */   isopera : function() {
     return check(/opr/);
   },
   /**
   * 检测是否为safari浏览器
   */
   issafari : function() {
   // google chrome浏览器中也包含了safari
     return !statics.ischrome() && !statics.isopera() && check(/safari/)
   }
 };

以上就是本文的全部介绍,希望可以帮助到大家。