IE11的变化 navigator.userAgent中不再包含“MSIE”关键字

IE升级了,让人好头疼,升级个东西,我们也要跟着升级,程序猿压力大呀。。。。

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

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

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方法了,不需要再区分浏览器。

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

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

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

在极少数情况下,必须唯一地标识 IE11。 使用 Trident 令牌来执行此操作。

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

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

例如:

//通过浏览器不同来确定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;
}
时间: 2024-08-29 14:44:37

IE11的变化 navigator.userAgent中不再包含“MSIE”关键字的相关文章

shell脚本--在带本月日期的文件中搜索包含某个关键字,并返回含有关键字的文件

因为工作中每天都需要根据某个关键字,在包含每天日期的一批文件中搜索某个关键字,找出这批文件中包含关键字的文件,并返回文件名.本程序涉及:find命令,date命令,if循环,$符号的意义(本程序涉及在bash脚本和命令行中意义) 脚本名为h.sh,脚本运行:例如:我们想搜索jack在不在本月的黑名单中,就这样执行脚本:sh h.sh jack, # cat h.sh 1 #!/bin/sh 2 sdate=`date +%Y%m` 3 dir=`find ./ -name "BLACKLIST_

IE11中navigator.userAgent的变化

在原来判断浏览器是否是ie时,我们可以根据navigator.userAgent中时候有MSIE,但是IE11进行变革,userAgent中不在包含MSIE字段, 在实际项目中,入到类似的在控制台报错问题,就是在进行校验浏览器型号时,具体方法如下: function  getBrowserInfo(){ var Sys = {}; var ua = navigator.userAgent.toLowersCase(); var re = /(msie I firefox | chrome | o

navigator.userAgent 取值都带有Mozill的原因。看完我笑了

最早的时候有一个浏览器叫NCSA Mosaic,把自己标称为NCSA_Mosaic/2.0 (Windows 3.1),它支持文字显示的同时还支持图片,于是Web开始好玩起来. 然后出现了一个新的网页浏览器,"Mozilla",其实就是"Mosaic终结者"的意思,这搞的Mosaic很不爽,(毕竟Mosaic出道早,江湖老),新浏览器最后正式公布的名称是Netscape,它把自己标称为Mozilla/1.0 (Win3.1),更好玩了.Netscape支持框架显示,

navigator.userAgent.indexOf来判断浏览器类型

原文地址:navigator.userAgent.indexOf来判断浏览器类型作者:litao15013140759 2009-11-10 12:48:28|  分类: javascript |  标签: |字号大中小 订阅 navigator.userAgent.indexOf来判断浏览器类型 <script language="JavaScript"> <!-- function getOs() { var OsObject = ""; if

javascript通过navigator.userAgent识别各种浏览器

识别各种浏览器的实现原理是根据navigator.userAgent返回值识别: 实现: unction validBrowser(){ var u_agent = navigator.userAgent; var browser_name='Failed to identify the browser'; if(u_agent.indexOf('Firefox')>-1){ browser_name='Firefox'; }else if(u_agent.indexOf('Chrome')>

eclipse 在Navigator视图中查看资源

随着不断使用Eclipse,Navigator视图中的实体数目会增加.通过在某一项目或文件夹上右击,并在所出现的快捷菜单中选择Go Into命令,你就可以查看该项目或文件夹中的资源了.此时Navigator视图目录将被所选择的项目或文件夹中的资源目录所代替.点击Navigator视图中的Up后,项目或文件夹的资源目录又将被Navigator视图目录所代替.而Forward和Back的功能和Web浏览器中的前进和后退图标的功能相同. 点击Navigator视图中标题栏上的下拉菜单,并在所出现的下拉

根据navigator.userAgent返回值识别 浏览器

function validBrowser(){ var u_agent = navigator.userAgent; var browser_name='Failed to identify the browser'; if(u_agent.indexOf('Firefox')>-1){ browser_name='Firefox'; }else if(u_agent.indexOf('Chrome')>-1){ browser_name='Chrome'; }else if(u_agent

(算法)判断字符串中是否包含HelloWorld

题目: 给定某字符串,判断该字符串中是否包含HelloWorld,出现HelloWorld不一定要连续,但顺序不变,如“HeByello,ByeWorByeld”就包含“HelloWorld”. 思路: 通过i,j来遍历两个字符串str1,str2(HelloWorld),假设长度分别为m,n: 当i>m或者j>n,则不包含: 当i<m且j==n-1,且str1[i]==str2[j],则包含: 当i<m且j<n,如果str1[i]==str2[j],i++,j++;否则,i

PHP判断字符串中是否包含指定字符串,支持中文哦

RT,随手写的 1 /** 2 * 判断字符串中是否包含指定字符串 3 * @var source 源字符串 4 * @var target 要判断的是否包含的字符串 5 * @return bool 6 */ 7 function hasstring($source,$target){ 8 preg_match_all("/$target/sim", $source, $strResult, PREG_PATTERN_ORDER); 9 return !empty($strResul