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;
}
IE11的变化 navigator.userAgent中不再包含“MSIE”关键字的更多相关文章
- SQLServer 查询view中是否包含某个关键字
在数据库view的创建中,会遇到一些跨数据库的view脚本,但是在将view更新到production的时候可能忘记更改database name,导致出现一些问题. 以下脚本可以检查出包含某个关键字 ...
- 【转】IE11的变化
1.navigator.userAgent中不再包含“MSIE”关键字 2.用javascript的判断是否是IE11的方法是: var isIE11 = (sUserAgent.toLowerCas ...
- IE11中navigator.userAgent的变化
在原来判断浏览器是否是ie时,我们可以根据navigator.userAgent中时候有MSIE,但是IE11进行变革,userAgent中不在包含MSIE字段, 在实际项目中,入到类似的在控制台报错 ...
- 用户代理字符串(navigator.userAgent)检测方法
最近在看<JavaScript 高级程序设计(第三版)>,发现其中关于用户代理字符串检测技术的一些方法,觉得讲的很详细.用户代理字符串(navigator.userAgent)中包含了大量 ...
- 从注册表清理 IE10,IE11 用户代理字符串(UserAgent)中的垃圾信息
某一天,我发现我的 IE User Agent 字符串里面竟然含有刷机大师.百度浏览器等许多垃圾,国货流氓见怪不怪了. 微软自家的.NET CLR也占据了一大片,看着也不爽. 决定清理一下,但是却没找 ...
- navigator.userAgent.indexOf来判断浏览器类型
navigator.userAgent.indexOf来判断浏览器类型 (2011-03-03 11:30:40) 转载▼ 标签: 杂谈 来源:http://xtaai5233.blog.163. ...
- 判断浏览器类型-----------navigator.userAgent.indexOf()
<script language="JavaScript"> <!-- function getOs() { var OsObject = "" ...
- navigator.userAgent浏览器检测(前端基础系列)
对于前端来说,浏览器检测已经不陌生了,在做一些页面是,需要针对不同的浏览器进行处理不同的逻辑,最简单的就是区分pc和移动端的浏览器,或是android 和ios下的浏览器. 一.浏览器检测的由来? ...
- js 不同浏览器的类型判断 navigator.userAgent
一.通过navigator.userAgent来进行浏览器类型判断 // 判断浏览器内核.手机系统等,使用 browser.userAgent.mobile var browser = { userA ...
随机推荐
- elasticsearch7.x集群安装(含head、bigdesk、kibana插件)
网址:https://www.elastic.co 192.168.14.239 es-node1192.168.14.240 es-node2192.168.14.241 es-node3 ==== ...
- webpack开发环境速度优化
随着项目的增大,项目运行速度会越来越慢,导致影响开发进度.需要提升开发时代码的运行速度. 1. ScopeHoisting作用域提升 该插件在production模式下默认开启.development ...
- bzoj 3829: [Poi2014]FarmCraft 树形dp+贪心
题意: $mhy$ 住在一棵有 $n$ 个点的树的 $1$ 号结点上,每个结点上都有一个妹子. $mhy$ 从自己家出发,去给每一个妹子都送一台电脑,每个妹子拿到电脑后就会开始安装 $zhx$ 牌杀毒 ...
- PHP文件载入
一.介绍 在实际开发中,经常会在一个PHP文件中引入其他的文件,被引入的文件可以是HTML文档,也可以是PHP文件 二.语法 require(文件名)和require_once(文件名) includ ...
- Comet OJ - Contest #9 & X Round 3题解
传送门 \(A\) 咕咕 typedef long long ll; int a1,a2,n,d;ll res; int main(){ scanf("%d%d%d",&a ...
- macos high sierra 删除多余的管理员的步骤
自己查看了好多文档, 一个比较可靠的地址有两个,不过发现跟我的不一样, 我没有采用. 也在这里贴出来, 供需要的"折腾者"们看看. [某个外国大大的方法] (https://med ...
- vue-d2admin前端axio异步请求详情
vue-d2admin前端axio异步请求详情 d2admin>src>api>sys.login.js 设计axio api import request from '@/plug ...
- P1378 油滴扩展——搜索小记
P1378 油滴扩展 记得这道题好久以前(好像是上个学期?) 就想做了,但是看着里面的半径边界好像很难处理就没做(主要是当时刚学OI(菜还给自己找借口)): 今天上午一直研究SG函数,做的都自闭了,晚 ...
- C 库函数 - strcspn()
定义 size_t strcspn(const char *str1, const char *str2) 参数 str1 -- 要被检索的 C 字符串. str2 -- 该字符串包含了要在 str1 ...
- select下拉框多选取值
本来是单选取值,现改为多选 其中<select> 标签新增multiple属性,如<select id = "sel" multiple = "mul ...