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 相关文章推荐
基于JQuery.timer插件实现一个计时器
Apr 25 Javascript
flexigrid 参数说明
Nov 23 Javascript
javascript开发随笔一 preventDefault的必要
Nov 25 Javascript
JS文本框默认值处理详解
Jul 10 Javascript
用JavaScript实现用一个DIV来包装文本元素节点
Sep 09 Javascript
Javascript window对象详解
Nov 12 Javascript
jQuery中:only-child选择器用法实例
Jan 03 Javascript
快速使用Bootstrap搭建传送带
May 06 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
Aug 25 Javascript
JavaScript 总结几个提高性能知识点(推荐)
Feb 20 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
Oct 24 Javascript
Vue.js分页组件实现:diVuePagination的使用详解
Jan 10 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
用Apache反向代理设置对外的WWW和文件服务器
2006/10/09 PHP
不错的PHP学习之php4与php5之间会穿梭一点点感悟
2007/05/03 PHP
PHP获取当前页面URL函数实例
2014/10/22 PHP
php使用yield对性能提升的测试实例分析
2019/09/19 PHP
快速解决FusionCharts联动的中文乱码问题
2013/12/04 Javascript
node.js中格式化数字增加千位符的几种方法
2015/07/03 Javascript
三种AngularJS中获取数据源的方式
2016/02/02 Javascript
论JavaScript模块化编程
2016/03/07 Javascript
Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
2016/09/28 Javascript
微信小程序 登录的简单实现
2017/04/19 Javascript
jQuery Validate表单验证插件实现代码
2017/06/08 jQuery
vue 动态绑定背景图片的方法
2018/08/10 Javascript
Vue实现美团app的影院推荐选座功能【推荐】
2018/08/29 Javascript
Nodejs调用Dll模块的方法
2018/09/17 NodeJs
13 个npm 快速开发技巧(推荐)
2019/07/04 Javascript
three.js利用卷积法如何实现物体描边效果
2019/11/27 Javascript
JS 设计模式之:工厂模式定义与实现方法浅析
2020/05/06 Javascript
vue 判断元素内容是否超过宽度的方式
2020/07/29 Javascript
nodejs中的异步编程知识点详解
2021/01/17 NodeJs
Python新手实现2048小游戏
2015/03/31 Python
完美解决python遍历删除字典里值为空的元素报错问题
2016/09/11 Python
python 实现查找文件并输出满足某一条件的数据项方法
2019/06/12 Python
pandas 数据结构之Series的使用方法
2019/06/21 Python
python lambda表达式在sort函数中的使用详解
2019/08/28 Python
python录音并调用百度语音识别接口的示例
2020/12/01 Python
中国专业的综合网上购物商城:京东
2016/08/02 全球购物
澳大利亚领先的运动鞋商店:Hype DC
2018/03/31 全球购物
Clarks西班牙官方在线商店:clarks鞋
2019/05/03 全球购物
德国购买门票网站:ADticket.de
2019/10/31 全球购物
门诊挂号室室长岗位职责
2013/11/27 职场文书
应届毕业生应聘自荐信范文
2014/02/26 职场文书
《音乐之都维也纳》教学反思
2014/04/16 职场文书
中考标语大全
2014/06/05 职场文书
2014教师党员自我评议(5篇)
2014/09/20 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
python计算列表元素与乘积详情
2022/08/05 Python