JavaScript判断IE版本
判断IE兼容到IE11
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判断IE版本的更多相关文章
- [JS]JavaScript判断操作系统版本
function detectOS() { var sUserAgent = navigator.userAgent; var isWin = (navigator.platform == " ...
- javascript判断浏览器的版本
在javascript中直接的使用navigator.userAgent就可以获取当前浏览器的版本等信息,以下是列出来的关于不同浏览器显示的值(Windows.Android.iPhone): IE6 ...
- JavaScript判断浏览器类型及版本
JavaScript是前端开发的主要语言,我们可以通过编写JavaScript程序来判断浏览器的类型及版本.JavaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性来分辨,另一 ...
- (转)JavaScript判断浏览器类型及版本
IE 只有IE支持创建ActiveX控件,因此她有一个其他浏览器没有的东西,就是ActiveXObject函数.只要判断window对象存在ActiveXObject函数,就可以明确判断出当前浏览器是 ...
- 通过JavaScript判断当前浏览器版本
从别人处拷贝,只用于自己学习之用.参考源自:http://www.cnblogs.com/leadzen/archive/2008/09/06/1285764.html JavaScript是前端开发 ...
- javascript判断手机浏览器版本信息
<script type="text/javascript"> /* * 智能机浏览器版本信息: * */ var browser={ versions:functio ...
- JavaScript判断移动端及pc端访问不同的网站
JavaScript判断移动端及pc端访问不同的网站 现在很多网站都是分为两个版本,一个pc端的一个移动端的(响应式除外),针对这两个版本,就需要对访问的设备进行判断,如果是pc,就直接访问pc网站, ...
- HMTL判断ie版本
html判断IE版本 1. <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--> 2. <!--[if IE]> ...
- html判断IE版本
html判断IE版本 . <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--> . <!--[if IE]> ...
随机推荐
- 一个多重阴影的DIV框框
要绝对定位,而且需要设置z-index,垂直高度,数值越小越看不见. <div class="beauty">I am your girl~</div> & ...
- angularJS——模块
一.在讲angularjs的模块之前,我们先介绍一下angular的一些知识点: AngularJS是纯客户端技术,完全用Javascript编写的.它使用的是网页开发的常规技术(HTML,CSS,J ...
- C++ 模拟Map
JDK中的Map类型采用键值对的方式保存数据,且键(key)不能重复.在HashMap的实现中实际采用了Hash分类加数组排序的方式.在C++中我没有采用这样的算法.而是通过首先对Key值进行二叉树排 ...
- Java线程中带有返回值的线程Callable
在Java5之前,线程是没有返回值的,常常为了“有”返回值,破费周折,而且代码很不好写.或者干脆绕过这道坎,走别的路了.现在Java终于有可返回值的任务(也可以叫做线程)了. 可返回值的任务必须实现C ...
- JAVA join()方法
转自:http://www.open-open.com/lib/view/open1371741636171.html 一.为什么要用join()方法 在很多情况下,主线程生成并起动了子线程,如果子线 ...
- CURL命令详解
curl命令是一个强大的网络工具,它能通过http,ftp等方式下载.上传文件.其中curl远不止这些功能,大家可以通过阅读手册获取更多的信息,类似的工具还有wget. curl命令使用了libcur ...
- block的循环引用
什么是循环引用呢? 就是我引用你,你引用我,就会造成循环引用,双方都不会被销毁,导致内存泄漏. _block = ^{ NSLog(@"%@", self); }; block会 ...
- HTML 5 音频
HTML 5 音频 ================================================================================= 音频是视频的重要 ...
- treetable 前台 累计计算树值 提交后台
treetable 累计计算树值 效果图 html 代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//E ...
- JITComVCTK无法访问
源代码第一次加载时会遇到JITComVCTK无法访问的问题,这是因为没有注册该第三方插件,需要到文件夹"\CommonFiles\dll\JITComVCTK"下注册,具体方式: ...