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图片画廊插件 推荐
May 12 Javascript
Jsonp post 跨域方案
Jul 06 Javascript
详解JavaScript中|单竖杠运算符的使用方法
May 23 Javascript
Google 地图获取API Key详细教程
Aug 06 Javascript
js print打印网页指定区域内容的简单实例
Nov 01 Javascript
webpack独立打包和缓存处理详解
Apr 03 Javascript
js实现添加删除表格(两种方法)
Apr 27 Javascript
jQuery UI 实例讲解 - 日期选择器(Datepicker)
Sep 18 jQuery
小程序hover-class点击态效果实现
Feb 26 Javascript
vue列表单项展开收缩功能之this.$refs的详解
May 05 Javascript
node将geojson转shp返回给前端的实现方法
May 29 Javascript
vue中使用v-for时为什么不能用index作为key
Apr 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
利用php获取服务器时间的实现代码
2013/06/07 PHP
深入解析PHP中SESSION反序列化机制
2017/03/01 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
使用Jquery搭建最佳用户体验的登录页面之记住密码自动登录功能(含后台代码)
2011/07/10 Javascript
javascript代码编写需要注意的7个小细节小结
2011/09/21 Javascript
javascript自启动函数的问题探讨
2013/10/05 Javascript
jQuery.holdReady()使用方法
2014/05/20 Javascript
详细分析使用AngularJS编程中提交表单的方式
2015/06/19 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
JS实现留言板功能[楼层效果展示]
2017/12/27 Javascript
axios拦截设置和错误处理方法
2018/03/05 Javascript
浅谈Postman解决token传参的问题
2018/03/31 Javascript
jQuery实现列表的增加和删除功能
2018/06/14 jQuery
小程序ios音频播放没声音问题的解决
2018/07/11 Javascript
微信小程序wx.request拦截器使用详解
2019/07/09 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
Vue+iview+webpack ie浏览器兼容简单处理
2019/09/20 Javascript
基于Vue实现微前端的示例代码
2020/04/24 Javascript
Python搭建HTTP服务器和FTP服务器
2017/03/09 Python
Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
2018/04/18 Python
python字符串常用方法
2018/06/14 Python
OpenCV+Python--RGB转HSI的实现
2019/11/27 Python
Python实现UDP程序通信过程图解
2020/05/15 Python
python 利用matplotlib在3D空间中绘制平面的案例
2021/02/06 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
HTML5 canvas基本绘图之填充样式实现
2016/06/27 HTML / CSS
类的返射机制中的包及核心类
2016/09/12 面试题
Java程序员面试题
2016/09/27 面试题
高校生生产实习自我鉴定
2013/09/21 职场文书
《寓言两则》教学反思
2014/02/27 职场文书
技术合作协议书范本
2014/04/18 职场文书
高一军训感想
2015/08/07 职场文书
机械原理课程设计心得体会
2016/01/15 职场文书
2016高校自主招生自荐信范文
2016/01/28 职场文书
2016年妇联“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
感谢信
2019/04/11 职场文书