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 相关文章推荐
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
Nov 06 Javascript
新老版本juqery获取radio对象的方法
Mar 01 Javascript
jQuery选择没有colspan属性的td的代码
Jul 06 Javascript
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
Jan 25 Javascript
JS关键字变色实现思路及代码
Feb 21 Javascript
jQuery aminate方法定位到页面具体位置
Dec 26 Javascript
js 赋值包含单引号双引号问题的解决方法
Feb 26 Javascript
jQuery 1.9.1源码分析系列(十三)之位置大小操作
Dec 02 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
Aug 16 Javascript
jquery平滑滚动到顶部插件使用详解
May 08 jQuery
vuejs实现标签选项卡动态更改css样式的方法
May 31 Javascript
VUE项目axios请求头更改Content-Type操作
Jul 24 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/08/06 PHP
PHP实现导出excel数据的类库用法示例
2016/10/15 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
Node.js实战 建立简单的Web服务器
2012/03/08 Javascript
基于jquery & json的省市区联动代码
2012/06/26 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
Js 获取当前函数参数对象的实现代码
2016/06/20 Javascript
AngularJS+Bootstrap实现多文件上传与管理
2016/11/08 Javascript
JavaScript函数基础详解
2017/02/03 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
Vue使用vue-area-linkage实现地址三级联动效果的示例
2018/06/27 Javascript
Vue中jsx不完全应用指南小结
2019/11/01 Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
2020/05/09 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
2020/09/07 Javascript
[52:00]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs Optic
2018/04/02 DOTA
Python中__call__用法实例
2014/08/29 Python
python使用urlparse分析网址中域名的方法
2015/04/15 Python
在Django的session中使用User对象的方法
2015/07/23 Python
Python基础语言学习笔记总结(精华)
2017/11/14 Python
Python读取数据集并消除数据中的空行方法
2018/07/12 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
Pytorch中accuracy和loss的计算知识点总结
2019/09/10 Python
Python进程池Pool应用实例分析
2019/11/27 Python
使用matlab 判断两个矩阵是否相等的实例
2020/05/11 Python
10款最佳Python开发工具推荐,每一款都是神器
2020/10/15 Python
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
护理专业毕业生自我鉴定
2013/10/08 职场文书
优秀员工表扬信
2014/01/17 职场文书
教师职业道德事迹材料
2014/08/18 职场文书
农村优秀教师事迹材料
2014/08/27 职场文书
社区文明创建工作总结2015
2015/04/21 职场文书
中小企业员工手册范本
2015/05/14 职场文书
2015年教师节主持词
2015/07/03 职场文书
2015年小学教师培训工作总结
2015/07/21 职场文书
2016大学迎新晚会开场白
2015/11/24 职场文书
2019经典广告词集锦!
2019/07/02 职场文书