JavaScript判断IE版本型号


Posted in Javascript onJuly 27, 2015

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

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/)
   }
 };

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

Javascript 相关文章推荐
iframe的onload在Chrome/Opera中执行两次Bug的解决方法
Mar 17 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
Apr 08 Javascript
用JavaScript实现用一个DIV来包装文本元素节点
Sep 09 Javascript
Css3制作变形与动画效果
Jul 24 Javascript
javascript同步服务器时间和同步倒计时小技巧
Sep 24 Javascript
js console.log打印对像与数组用法详解
Jan 21 Javascript
JavaScript笔记之数据属性和存储器属性
Mar 31 Javascript
深入浅析JavaScript中的Function类型
Jul 09 Javascript
JavaScript中 ES6 generator数据类型详解
Aug 11 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
Feb 13 Javascript
jQuery常见面试题之DOM操作详析
Jul 05 jQuery
JavaScript原型对象、构造函数和实例对象功能与用法详解
Aug 04 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
Jul 27 #Javascript
readonly和disabled属性的区别
Jul 26 #Javascript
javascript实现继承的简单实例
Jul 26 #Javascript
IE10中flexigrid无法显示数据的解决方法
Jul 26 #Javascript
javascript实现将文件保存到本地方法汇总
Jul 26 #Javascript
javascript获取当前的时间戳的方法汇总
Jul 26 #Javascript
鼠标经过子元素触发mouseout,mouseover事件的解决方案
Jul 26 #Javascript
You might like
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
SONY ICF-SW7600的电路分析
2021/03/02 无线电
php $_ENV为空的原因分析
2009/06/01 PHP
PHP 快速排序算法详解
2014/11/10 PHP
PDO预处理语句PDOStatement对象使用总结
2014/11/20 PHP
php绘制一个扇形的方法
2015/01/24 PHP
Zend Framework教程之模型Model基本规则和使用方法
2016/03/04 PHP
如何用PHP做到页面注册审核
2017/03/02 PHP
Laravel框架实现调用百度翻译API功能示例
2019/05/30 PHP
让iframe框架网页在任何浏览器下自动伸缩
2006/08/18 Javascript
Javascript延迟执行实现方法(setTimeout)
2010/12/30 Javascript
40款非常棒的jQuery 插件和制作教程(系列二)
2011/11/02 Javascript
利用JS实现浏览器的title闪烁
2013/07/08 Javascript
javascript放大镜效果的简单实现
2013/12/09 Javascript
javascript实现json页面分页实例代码
2014/02/20 Javascript
jquery通过visible来判断标签是否显示或隐藏
2014/05/08 Javascript
jquery获取对象的方法足以应付常见的各种类型的对象
2014/05/14 Javascript
使用正则表达式的格式化与高亮显示json字符串
2014/12/03 Javascript
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
详解JavaScript 中的 replace 方法
2016/01/01 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
React项目动态设置title标题的方法示例
2018/09/26 Javascript
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
vuex入门最详细整理
2020/03/04 Javascript
[00:17]DOTA2荣耀之路5:It’s a disastah!
2018/05/28 DOTA
[54:09]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
理解python多线程(python多线程简明教程)
2014/06/09 Python
Python计算三角函数之asin()方法的使用
2015/05/15 Python
python使用in操作符时元组和数组的区别分析
2015/05/19 Python
Python判断直线和矩形是否相交的方法
2015/07/14 Python
Python+Turtle动态绘制一棵树实例分享
2018/01/16 Python
Python数据类型之Tuple元组实例详解
2019/05/08 Python
Python3 Tkinter选择路径功能的实现方法
2019/06/14 Python
用Python画小女孩放风筝的示例
2019/11/23 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
2020/05/12 Python
工商管理毕业生推荐信
2013/12/24 职场文书