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 相关文章推荐
javascript之锁定表格栏位
Jun 29 Javascript
Javascript 二维数组
Nov 26 Javascript
原生JS操作网页给p元素添加onclick事件及表格隔行变色
Dec 01 Javascript
JavaScript中的this关键字使用详解
Aug 14 Javascript
JavaScript实现页面跳转的几种常用方式
Nov 28 Javascript
javascript使用Promise对象实现异步编程
Mar 01 Javascript
javascript 动态脚本添加的简单方法
Oct 11 Javascript
记录一篇关于redux-saga的基本使用过程
Aug 18 Javascript
Javascript数组方法reduce的妙用之处分享
Jun 10 Javascript
jQuery位置选择器用法实例分析
Jun 28 jQuery
jQuery实现form表单基于ajax无刷新提交方法实例代码
Nov 04 jQuery
js前端对于大量数据的展示方式及处理方法
Dec 02 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
不错的一篇面向对象的PHP开发模式(简写版)
2007/03/15 PHP
PHP 字符串分割和比较
2009/10/06 PHP
php代码书写习惯优化小结
2013/06/20 PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
2013/08/01 PHP
PHP编程中的常见漏洞和代码实例
2014/08/06 PHP
Yii2隐藏frontend/web和backend/web的方法
2015/12/12 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
php中的依赖注入实例详解
2019/08/14 PHP
Laravel5.4简单实现app接口Api Token认证方法
2019/08/29 PHP
Javascript 静态页面实现随机显示广告的办法
2010/11/17 Javascript
juqery 学习之四 筛选查找
2010/11/30 Javascript
js中的setInterval和setTimeout使用实例
2014/05/09 Javascript
Javascript基础_简单比较undefined和null 值
2016/06/14 Javascript
微信小程序 石头剪刀布实例代码
2017/01/04 Javascript
jquery实现多次上传同一张图片
2017/01/09 Javascript
Vue父组件调用子组件事件方法
2018/02/23 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
vue中的.$mount('#app')手动挂载操作
2020/09/02 Javascript
Python实现的金山快盘的签到程序
2013/01/17 Python
进一步探究Python中的正则表达式
2015/04/28 Python
Python 爬取携程所有机票的实例代码
2018/06/11 Python
python钉钉机器人运维脚本监控实例
2019/02/20 Python
Django 后台获取文件列表 InMemoryUploadedFile的例子
2019/08/07 Python
详解Python中namedtuple的使用
2020/04/27 Python
浅谈Python3多线程之间的执行顺序问题
2020/05/02 Python
Django模板获取field的verbose_name实例
2020/05/19 Python
python pillow库的基础使用教程
2021/01/13 Python
中国酒类在线零售网站:酒仙网
2016/08/20 全球购物
《胡杨》教学反思
2014/02/16 职场文书
大学军训感言300字
2014/03/09 职场文书
事业单位人员的自我评价范文
2014/09/21 职场文书
毕业生实习期转正自我鉴定
2014/09/26 职场文书
老人院义工活动感想
2015/08/07 职场文书
Nginx禁止ip访问或非法域名访问
2022/04/07 Servers
springboot 全局异常处理和统一响应对象的处理方式
2022/06/28 Java/Android
如何利用python实现Simhash算法
2022/06/28 Python