【转】IE11的变化

1.navigator.userAgent中再也不包含“MSIE”关键字javascript

2.用javascript的判断是不是IE11的方法是:java

 
var isIE11 = (sUserAgent.toLowerCase().indexOf("trident") > -1 && sUserAgent.indexOf("rv") > -1);
if (isIE11) {
    var reIE11 = new RegExp("rv:(\\d+\\.\\d+);");
    reIE11.test(sUserAgent);
    isMinIE11 = compareVersions(RegExp["$1"], "11.0") >= 0;
}

  

3.支持addEventListener方法了,不须要再区分浏览器。web

4.若是将这些 user-agent 字符串与早期版本的 Internet Explorer 报告的字符串进行比较,你会发现如下更改:浏览器

  • 兼容 ("兼容") 和浏览器 ("MSIE") 令牌已删除。
  • "like Gecko" 令牌已添加(以便与其余浏览器一致)。
  • 浏览器版本如今由新版本 ("rv") 令牌报告。

这些更改有助于防止 IE11 被(错误)标识为较早的版本。服务器

在极少数状况下,必须惟一地标识 IE11。 使用 Trident 令牌来执行此操做。ide

5.更具体的变化:http://msdn.microsoft.com/zh-cn/library/ie/dn265032(v=vs.85).aspxblog

6.不要经过检测浏览器的不一样来检测Web 浏览器所支持功能的方法存在,要使用直接检测对该功能的支持事件

例如:ip

 
//经过浏览器不一样来肯定web浏览器所支持的功能存在的方法:浏览器检测
    if (isIE) {
        window.attachEvent('onresize', setPosition);
    } else {
        window.addEventListener('resize', setPosition, false);
    }
//直接检测对该功能的支持:功能检测
function registerEvent( sTargetID, sEventName, fnHandler ) 
{
   var oTarget = document.getElementById( sTargetID );
   if ( oTarget != null ) 
   {
      if ( oTarget.addEventListener ) {   
         oTarget.addEventListener( sEventName, fnToBeRun, false );
      } else {
        var sOnEvent = "on" + sEventName; 
        if ( oTarget.attachEvent ) 
        {
           oTarget.attachEvent( sOnEvent, fnHandler );
        }
      }
   }
}
/*
其侧重于功能而非浏览器。 若是用户碰巧使用支持 addEventListener 方法的浏览器(例如,Internet Explorer 9 和许多其余浏览器),则将使用该方法定义事件处理程序。它侧重于基于标准的方法,而非专有方法。 在这种状况下,在尝试使用备用方法前,本示例验证对首选方法(addEventListener 方法)的支持。本示例很是有效,由于它没有假设任何给定浏览器的行为。 这种方法无需为了支持全部(假定的)新版 Internet Explorer 而进行更新,也无需为了支持新的浏览器或设备而进行扩展。 本示例仅侧重于功能的可用性。 这是功能检测和浏览器检测之间的主要区别。在理想状况下,全部的浏览器都将支持相同的标准并以彻底相同的方法实施这些标准。 然而,事实上浏览器及其各自对不一样标准的实施状况之间存在着不少不一样.
*/

 

………………………………………………………………………………………………我是分隔符……………………………………………………………………………………………………………………开发

  

JS如何判断包括IE11在内的IE浏览器

判断是否IE浏览器用的是window.navigator.userAgent,跟踪这个信息,发如今开发环境,识别为IE10,但访问服务器则识别为IE11,但IE11的userAgent里是没有MSIE标志的,缘由就是这个了。

 

把判断IE浏览器的方法改为以下就能够了。

        function isIE() { //ie?
            if (!!window.ActiveXObject || "ActiveXObject" in window)
                return true;
            else
                return false;
        }
相关文章
相关标签/搜索