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颜色选择器ColorPicker实现代码
Nov 14 Javascript
解析JavaScript中的标签语句
Jun 19 Javascript
JavaScript动态创建div属性和样式示例代码
Oct 09 Javascript
JavaScript中九种常用排序算法
Sep 02 Javascript
js实现自动图片轮播代码
Mar 22 Javascript
对存在JavaScript隐式类型转换的四种情况的总结(必看篇)
Aug 31 Javascript
浅谈JS函数节流防抖
Oct 18 Javascript
详解vuex commit保存数据技巧
Dec 25 Javascript
在weex中愉快的使用scss的方法步骤
Jan 02 Javascript
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
Jul 27 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
Aug 08 Javascript
webstorm建立vue-cli脚手架的傻瓜式教程
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的相似度计算函数:levenshtein的使用介绍
2013/04/15 PHP
php实现12306余票查询、价格查询示例
2014/04/17 PHP
ThinkPHP自动完成中使用函数与回调方法实例
2014/11/29 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
2020/04/07 PHP
一个小型js框架myJSFrame附API使用帮助
2008/06/28 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
流量统计器如何鉴别C#:WebBrowser中伪造referer
2015/01/07 Javascript
js游戏人物上下左右跑步效果代码分享
2015/08/28 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
2016/03/09 Javascript
jquery编写Tab选项卡滚动导航切换特效
2020/07/17 Javascript
正则 js分转元带千分符号详解
2017/03/08 Javascript
Vue.js 点击按钮显示/隐藏内容的实例代码
2018/02/08 Javascript
vue利用全局导航守卫作登录后跳转到未登录前指定页面的实例代码
2020/05/19 Javascript
js实现可爱的气泡特效
2020/09/05 Javascript
vue实现防抖的实例代码
2021/01/11 Vue.js
python连接池实现示例程序
2013/11/26 Python
Python对象的深拷贝和浅拷贝详解
2014/08/25 Python
Python模块包中__init__.py文件功能分析
2016/06/14 Python
python正则实现提取电话功能
2018/02/24 Python
Python sklearn KFold 生成交叉验证数据集的方法
2018/12/11 Python
python 消除 futureWarning问题的解决
2019/12/25 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
Python之字符串的遍历的4种方式
2020/12/08 Python
Pycharm 跳转回之前所在页面的操作
2021/02/05 Python
HTML5 Canvas实现平移/放缩/旋转deom示例(附截图)
2013/07/04 HTML / CSS
美国最大的在线生存商店:Survival Frog
2020/12/13 全球购物
广告学专业应届生求职信
2013/10/01 职场文书
毕业生求职简历的自我评价
2013/10/23 职场文书
高中毕业自我评价
2014/02/08 职场文书
《维生素c的故事》教学反思
2014/02/18 职场文书
中职生求职信
2014/07/01 职场文书
学术会议通知
2015/04/15 职场文书
2016年万圣节家长开放日活动总结
2016/04/05 职场文书
Python编解码问题及文本文件处理方法详解
2021/06/20 Python