JavaScript判断IE版本

判断IE兼容到IE11

IE浏览器与非IE浏览器的区别是IE浏览器支持ActiveXObject,但是非IE浏览器不支持ActiveXObject。在IE11浏览器还没出现的时候我们判断IE和非IE经常是这么写的

1 function isIe(){
2     return window.ActiveXObject ? true : false;
3 }

但是在IE11中上面判断的返回的是false,我自己在IE11测试了下如下代码:

1 alert(window.ActiveXObject);
2 alert(typeof window.ActiveXObject);

这是为什么呢?明明ActiveXObject是存在的,怎么就typeof的结果确实undefined。哪位知道结果的告诉我这是为什么呢?为神马?

微软上的官网说出了IE11的ActiveXObject的不同。

1 alert("ActiveXObject" in window)//在ie11下返回的是true

下面就直接给出兼容IE11判断IE与非IE浏览器的方法。

1 function isIe(){
2    return ("ActiveXObject" in window);
3 }

判断IE6浏览器

从IE7开始IE是支持XMLHttpRequest对象的,唯独IE6是不支持的。根据这个特性和前面判断IE的函数isIe()我们就知道怎么判断IE6了吧。判断方法如下:

1 function isIe6() {
2    // ie6是不支持window.XMLHttpRequest的
3    return isIe() && !window.XMLHttpRequest;
4 }

判断IE7浏览器

因为从IE8开始是支持文档模式的,它支持document.documentMode。IE7是不支持的,但是IE7是支持XMLHttpRequest对象的。判断方法如下:

1 function isIe7() {
2     //只有IE8+才支持document.documentMode
3     return isIe() && window.XMLHttpRequest && !document.documentMode;
4 }

判断IE8浏览器

在从IE9开始,微软慢慢的靠近标准,我们把IE678称为非标准浏览器,IE9+与其他如chrome,firefox浏览器称为标准浏览器。两者的区别其中有一个是alert(-[1,]);//在IE678中打印的是NaN,但是在标准浏览器打印的是-1

那么我们就可以根据上面的区别来判断是IE8浏览器。方法如下:

1 function isIe8(){
2    // alert(!-[1,])//->IE678返回NaN 所以!NaN为true 标准浏览器返回-1 所以!-1为false
3    return isIe() &&!-[1,]&&document.documentMode;
4 }

判断IE9、IE10、IE11浏览器

从IE8浏览器是支持JSON内置对象的,从IE10开始支持js的严格模式。IE9+下alert(!-[1,])返回的是false,IE9+是支持addEventListener的,但是IE11浏览器中是不支持原来IE中独有的事件绑定attachEvent。根据这些区别我们就能区分出IE9、IE10、IE11浏览器了。

判断其他浏览器

 1 //检测函数
 2 var check = function(r) {
 3     return r.test(navigator.userAgent.toLowerCase());
 4 };
 5 var statics = {
 6     /**
 7     * 是否为webkit内核的浏览器
 8     */
 9     isWebkit : function() {
10         return check(/webkit/);
11     },
12     /**
13     * 是否为火狐浏览器
14     */
15     isFirefox : function() {
16         return check(/firefox/);
17     },
18     /**
19     * 是否为谷歌浏览器
20     */
21     isChrome : function() {
22         return !statics.isOpera() && check(/chrome/);
23     },
24     /**
25     * 是否为Opera浏览器
26     */
27     isOpera : function() {
28         return check(/opr/);
29     },
30     /**
31     * 检测是否为Safari浏览器
32     */
33     isSafari : function() {
34     // google chrome浏览器中也包含了safari
35         return !statics.isChrome() && !statics.isOpera() && check(/safari/)
36     }
37 };
时间: 2024-08-11 09:56:24

JavaScript判断IE版本的相关文章

JavaScript判断操作系统版本

function detectOS() { var sUserAgent = navigator.userAgent; var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows"); var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC

Javascript 判断浏览器版本和名称

var agent = navigator.userAgent.toLowerCase(), browserVersion = null, browserSet = ['msie','chrome','firefox','safari']; browserSet.forEach(function(item){//eg:In chrome ,navigator.userAgent is "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36

JavaScript判断浏览器类型及版本

说明:以下内容参考了一些网上资料以及同事间的一些讨论. 浏览器对于我们来说,可能是最熟悉的工具了.记得最早那会Netscape,到后来的Internet Explorer一统江湖,再到现在的FireFox大行其道,浏览器市场的争夺,可谓是硝烟弥漫.除了我们常见的IE, Firefox, Opera, Safari四大金刚以外,新近又出了一位Chrome,虽然新出,但是出于Google这个名门,Chrome所受到的关注绝不亚于先前的四大金刚,看来以后要改为5朵金花了,呵呵.除了这些熟知的浏览器以外

javascript判断手机浏览器版本信息

<script type="text/javascript"> /* * 智能机浏览器版本信息: * */ var browser={ versions:function(){ var u = navigator.userAgent, app = navigator.appVersion; return {//移动终端浏览器版本信息 trident: u.indexOf('Trident') > -1, //IE内核 presto: u.indexOf('Presto

(转)JavaScript判断浏览器类型及版本

IE 只有IE支持创建ActiveX控件,因此她有一个其他浏览器没有的东西,就是ActiveXObject函数.只要判断window对象存在ActiveXObject函数,就可以明确判断出当前浏览器是IE.而IE各个版本典型的userAgent如下: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)        Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)        Mozilla/

JavaScript判断IE各版本最完美解决方案

判断是否是ie浏览器 http://qsfwy.iteye.com/blog/249968 判断ie版本 https://github.com/nioteam/jquery-plugins/issues/12

判断IE版本

<script type="text/javascript">var browser=navigator.appNamevar b_version=navigator.appVersionvar version=b_version.split(";");var trim_Version=version[1].replace(/[ ]/g,"");if(browser=="Microsoft Internet Explorer

判断IE版本的HTML语句详解,如:[if lte IE 9]……[endif]

我们常常会在网页的HTML里面看到形如[if lte IE 9]--[endif]的代码,表示的是限定某些浏览器版本才能执行的语句,那么这些判断语句的规则是什么呢?请看下文: <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--><!--[if IE]> 所有的IE可识别 <![endif]--><!--[if IE 6]> 仅IE6可识别 <![endif]--><!--[i

IE下判断IE版本语法使用

先摆一下判断IE版本语法 <!--[if lte IE 6]> <![endif]--> IE6及其以下版本可见 <!--[if lte IE 7]> <![endif]--> IE7及其以下版本可见 <!--[if IE 6]> <![endif]--> 只有IE6版本可见 <![if !IE]> <![endif]> 除了IE以外的版本 <!--[if lt IE 8]> <![endif