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 相关文章推荐
向fckeditor编辑器插入指定代码的方法
May 25 Javascript
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
Nov 30 Javascript
javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
Jan 09 Javascript
jQuery页面加载初始化常用的三种方法
Jun 04 Javascript
JavaScript动态插入CSS的方法
Dec 10 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
May 12 Javascript
深入理解Angular4订阅(Subscribe)与取消
Nov 22 Javascript
mongoose更新对象的两种方法示例比较
Dec 19 Javascript
JS面试题大坑之隐式类型转换实例代码
Oct 14 Javascript
jQuery AJAX与jQuery事件的分析讲解
Feb 18 jQuery
JS计算斐波拉切代码实例
Sep 12 Javascript
解决vue项目运行npm run serve报错的问题
Oct 26 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过滤器 filter_has_var() 函数用法实例分析
2020/04/23 PHP
a标签的css样式四个状态
2021/03/09 HTML / CSS
jQuery基本过滤选择器使用介绍
2013/04/18 Javascript
javaScript NameSpace 简单说明介绍
2013/07/18 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
JS 获取浏览器和屏幕宽高等信息代码
2014/03/31 Javascript
jquery xMarquee实现文字水平无缝滚动效果
2014/04/29 Javascript
node.js中的http.response.write方法使用说明
2014/12/14 Javascript
jQuery实现tag便签去重效果的方法
2015/01/20 Javascript
JS仿iGoogle自定义首页模块拖拽特效的方法
2015/02/13 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
扩展Bootstrap Tooltip插件使其可交互的方法
2016/11/07 Javascript
angular 用拦截器统一处理http请求和响应的方法
2017/06/08 Javascript
jQuery.parseJSON()函数详解
2019/02/28 jQuery
Python程序设计入门(3)数组的使用
2014/06/16 Python
初步解析Python下的多进程编程
2015/04/28 Python
Python函数参数匹配模型通用规则keyword-only参数详解
2019/06/10 Python
python word转pdf代码实例
2019/08/16 Python
在Pytorch中计算自己模型的FLOPs方式
2019/12/30 Python
Python实现名片管理系统
2020/02/14 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
Python如何实现机器人聊天
2020/09/10 Python
Kmeans均值聚类算法原理以及Python如何实现
2020/09/26 Python
Spy++的使用方法及下载教程
2021/01/29 Python
canvas使用注意点总结
2013/07/19 HTML / CSS
Elemental Herbology官网:英国美容品牌
2019/04/27 全球购物
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
大学生求职信范文应怎么写
2014/01/01 职场文书
新任教师自我鉴定
2014/02/24 职场文书
2014年乡镇植树节活动方案
2014/02/28 职场文书
空中乘务员岗位职责
2014/03/08 职场文书
导游个人求职信范文
2014/03/23 职场文书
《大江保卫战》教学反思
2014/04/11 职场文书
暂住证证明
2015/06/19 职场文书
bootstrapv4轮播图去除两侧阴影及线框的方法
2022/02/15 HTML / CSS