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升级新版本后选择器的语法问题
Jun 02 Javascript
javascript动画浅析
Aug 30 Javascript
jQuery 淡入淡出 png图在ie8下有黑色边框的解决方法
Mar 05 Javascript
JavaScript输入邮箱自动提示实例代码
Jan 13 Javascript
JavaScript函数作用域链分析
Feb 13 Javascript
JavaScript中用toString()方法返回时间为字符串
Jun 12 Javascript
jQuery的remove()方法使用详解
Aug 11 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
Apr 29 Javascript
必备的JS调试技巧汇总
Jul 20 Javascript
JS实现页面进入和返回定位到具体位置
Dec 08 Javascript
yarn的使用与升级Node.js的方法详解
Jun 04 Javascript
Vue动态组件实例解析
Aug 20 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实现文件安全下载
2006/10/09 PHP
php 网上商城促销设计实例代码
2012/02/17 PHP
IIS6.0 开启Gzip方法及PHP Gzip函数分享
2014/06/08 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
JavaScript设置FieldSet展开与收缩
2009/05/15 Javascript
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法
2011/04/07 Javascript
关于二级域名下使用一级域名下的COOKIE的问题
2011/11/07 Javascript
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
jQuery中prepend()方法用法实例
2014/12/25 Javascript
jquery实现select下拉框美化特效代码分享
2015/08/18 Javascript
jQuery EasyUI Dialog拖不下来如何解决
2015/09/28 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
2016/05/17 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
Angular学习教程之RouterLink花式跳转
2018/05/03 Javascript
vue+element+Java实现批量删除功能
2019/04/08 Javascript
微信小程序激励式视频广告组件使用详解
2019/12/06 Javascript
解决vue项目,npm run build后,报路径错的问题
2020/08/13 Javascript
Python实现的字典值比较功能示例
2018/01/08 Python
使用django-crontab实现定时任务的示例
2018/02/26 Python
Python递归实现汉诺塔算法示例
2018/03/19 Python
简单了解python数组的基本操作
2019/11/26 Python
Django自定义全局403、404、500错误页面的示例代码
2020/03/08 Python
PyQt使用QPropertyAnimation开发简单动画
2020/04/02 Python
Emporio Armani腕表天猫官方旗舰店:乔治·阿玛尼为年轻人设计的副线品牌
2017/07/02 全球购物
巴西葡萄酒销售网站:Wine.com.br
2017/11/07 全球购物
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
linux面试题参考答案(1)
2016/01/22 面试题
优秀辅导员事迹材料
2014/02/16 职场文书
红领巾心向党演讲稿
2014/09/10 职场文书
辞旧迎新演讲稿
2014/09/15 职场文书
学生违反校规检讨书
2014/10/28 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书
2014年前台接待工作总结
2014/12/05 职场文书
2015年组织委员工作总结
2015/04/23 职场文书
亮剑观后感500字
2015/06/05 职场文书
银行资信证明
2015/06/17 职场文书