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 相关文章推荐
juqery 学习之五 文档处理 包裹、替换、删除、复制
Feb 11 Javascript
jquery控制左右箭头滚动图片列表的实例
May 20 Javascript
js实现鼠标点击左上角滑动菜单效果代码
Sep 06 Javascript
javascript检查某个元素在数组中的索引值
Mar 30 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
Jun 17 Javascript
angular 基于ng-messages的表单验证实例
May 04 Javascript
加载 vue 远程代码的组件实例详解
Nov 20 Javascript
vue项目优化之通过keep-alive数据缓存的方法
Dec 11 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
Dec 14 Javascript
JavaScript+H5实现微信摇一摇功能
May 23 Javascript
原生JS实现轮播图效果
Oct 12 Javascript
JS指定音频audio在某个时间点进行播放
Nov 28 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
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
PHP与javascript实现变量交互的示例代码
2013/07/23 PHP
php数组生成html下拉列表的方法
2015/07/20 PHP
PHP处理二进制数据的实现方法
2016/06/13 PHP
优化javascript的执行效率一些方法总结
2013/12/25 Javascript
node.js开机自启动脚本文件
2014/12/24 Javascript
jQuery+css实现炫目的动态块漂移效果
2016/01/28 Javascript
angularjs 源码解析之scope
2016/08/22 Javascript
vue中配置mint-ui报css错误问题的解决方法
2017/10/11 Javascript
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
[01:57]2018年度DOTA2最具潜力解说-完美盛典
2018/12/16 DOTA
[00:49]完美世界DOTA2联赛10月28日开团时刻:随便打
2020/10/29 DOTA
[07:25]DOTA2-DPC中国联赛2月5日Recap集锦
2021/03/11 DOTA
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
2014/01/22 Python
wxpython 最小化到托盘与欢迎图片的实现方法
2014/06/09 Python
Python程序中的观察者模式结构编写示例
2016/05/27 Python
python实现BackPropagation算法
2017/12/14 Python
python中join()方法介绍
2018/10/11 Python
python 阶乘累加和的实例
2019/02/01 Python
python队列Queue的详解
2019/05/10 Python
Python判断字符串是否为空和null方法实例
2020/04/26 Python
Python3自定义json逐层解析器代码
2020/05/11 Python
HTML5 移动页面自适应手机屏幕四类方法总结
2017/08/17 HTML / CSS
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
Kingsoft金山公司C/C++笔试题
2016/05/10 面试题
大学生收银员求职信分享
2014/01/02 职场文书
公司联欢会策划方案
2014/05/19 职场文书
护校行动方案
2014/05/31 职场文书
会计学专业求职信
2014/07/17 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
2015年初中生自我评价范文
2015/03/03 职场文书
冲出亚马逊观后感
2015/06/03 职场文书
Python的这些库,你知道多少?
2021/06/09 Python
UNION CREATIVE《Re:从零开始的异世界生活》雷姆手办
2022/03/20 日漫
el-form每行显示两列底部按钮居中效果的实现
2022/08/05 HTML / CSS