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;
}
