JavaScript判断IE版本型号

作者:流萤

时间:2026-10-30

浏览:429

本文介绍如何使用JavaScript判断IE浏览器版本。针对IE11中ActiveXObject行为变化的问题,提供了兼容写法。通过检测XMLHttpRequest、document.documentMode、alert(-[1,])及addEventListener等特性,区分IE6至IE11各版本,并给出判断其他浏览器的示例代码。

文章目录

下文通过代码演示具体操作:

判断IE与非IE浏览器

IE浏览器支持ActiveXObject,非IE浏览器不支持。在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浏览器

判断IE6浏览器

IE7起支持XMLHttpRequest,仅IE6不支持。结合isIe()函数,判断IE6方法如下:

代码如下:

function isIe6() {
// ie6是不支持window.XMLHttpRequest的
return isIe() && !window.XMLHttpRequest;
 }

判断IE7浏览器

判断IE7浏览器

IE8起支持documentMode,IE7不支持但支持XMLHttpRequest。判断方法如下:

 

代码如下:

function isIe7() {
//只有IE8+才支持document.documentMode
return isIe() && window.XMLHttpRequest && !document.documentMode;
 }

判断IE8浏览器

判断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浏览器

判断IE9、IE10、IE11浏览器

IE8起支持JSON,IE10起支持严格模式。IE9+下alert(!-[1,])返回false,IE9+支持addEventListener,但IE11不支持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/)
   }
 };

以上为本文全部内容,希望有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章