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实现Array和String互转换的方法
Dec 21 Javascript
在Docker快速部署Node.js应用的详细步骤
Sep 02 Javascript
Bootstrap时间选择器datetimepicker和daterangepicker使用实例解析
Sep 17 Javascript
利用jquery实现瀑布流3种案例
Sep 18 Javascript
浅谈js之字面量、对象字面量的访问、关键字in的用法
Nov 20 Javascript
详解微信小程序开发之——wx.showToast(OBJECT)的使用
Jan 18 Javascript
canvas雪花效果核心代码分享
Feb 19 Javascript
JS实现的五级联动菜单效果完整实例
Feb 23 Javascript
详解React中setState回调函数
Jun 14 Javascript
koa2服务端使用jwt进行鉴权及路由权限分发的流程分析
Jul 22 Javascript
VUE实现自身整体组件销毁的示例代码
Jan 13 Javascript
JSON 入门教程基础篇 json入门学习笔记
Sep 22 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入门学习知识点二 PHP简单的分页过程与原理
2011/07/14 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
LABjs、RequireJS、SeaJS的区别
2014/03/04 Javascript
jQuery无刷新切换主题皮肤实例讲解
2015/10/21 Javascript
JS实现超简单的鼠标拖动效果
2015/11/02 Javascript
javascript函数命名的三种方式及区别介绍
2016/03/22 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
2017/01/03 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
Vue 中mixin 的用法详解
2018/04/23 Javascript
MVVM框架下实现分页功能示例
2018/06/14 Javascript
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
layui弹出框Tab选项卡的示例代码
2019/09/04 Javascript
使用pkg打包ThinkJS项目的方法步骤
2019/12/30 Javascript
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
2020/04/11 Javascript
Python import自定义模块方法
2015/02/12 Python
Python实现基于权重的随机数2种方法
2015/04/28 Python
一文总结学习Python的14张思维导图
2017/10/17 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
2017/11/11 Python
python调用百度语音REST API
2018/08/30 Python
Python根据字符串调用函数过程解析
2020/11/05 Python
HTML5 背景的显示区域实现
2020/07/09 HTML / CSS
护理中职生求职信范文
2014/02/24 职场文书
工程资料员岗位职责
2014/03/10 职场文书
法律进社区实施方案
2014/03/21 职场文书
担保书格式及范文
2014/04/01 职场文书
教师演讲稿开场白
2014/08/25 职场文书
优秀团员自我评价
2015/03/10 职场文书
2015年秋季新学期寄语
2015/03/25 职场文书
农业项目合作意向书
2015/05/08 职场文书
高中生军训感言
2015/08/01 职场文书
2016初一新生军训心得体会
2016/01/11 职场文书
离婚协议书范文2016
2016/03/18 职场文书
导游词之河北邯郸
2019/09/12 职场文书