识别IE 11浏览器的最佳方法是什么?
IE 11的UA格式为: Mozilla / 5.0(Windows NT 6.3; Trident / 7.0; rv 11.0),如Gecko
我使用以下代码,但我需要知道它是否完全安全,或者是否有替代方法?
sUserAgent = Request.ServerVariables("HTTP_USER_AGENT")
comstart = instr(sUserAgent,"(")
comend = instr(sUserAgent,")")
if comstart <> 0 then
cmtlist = mid(sUserAgent,comstart+1,comend-comstart-1)
else
cmtlist = " ; ; ;"
end if
cmtArray = split(cmtlist,";")
if instr(sUserAgent,"rv") > 0 then ' it's a Microsoft browser
browserName="MSIE"
browserVersion=right(cmtArray(1),len(cmtArray(1))-5)
endif
另外在其他文件中,我使用以下JavaScript代码。如果建议使用此代码,请提供建议。如果有更好的方法,请建议。这段代码可以在将来产生一些意想不到的结果吗? :
// In IE11, the true version is after "rv" in the User Agent string
var nAgt = navigator.userAgent;
if ((verOffset = nAgt.indexOf("rv")) != -1)
{
browserName = "Microsoft Internet Explorer";
fullVersion = nAgt.substring(verOffset + 3);
}
答案 0 :(得分:0)
虽然功能检测非常有用,并且有时是区分支持和非支持浏览器版本的最快方法,但检测IE及其版本实际上是小菜一碟:
var uA = navigator.userAgent;
var browser = null;
var ieVersion = null;
var htmlTag = document.documentElement;
if (uA.indexOf('MSIE 6') >= 0) {
browser = 'IE';
ieVersion = 6;
}
if (uA.indexOf('MSIE 7') >= 0) {
browser = 'IE';
ieVersion = 7;
}
if (document.documentMode) { // as of IE8; strictly IE proprietary
browser = 'IE';
ieVersion = document.documentMode;
}
// Using it can be done like this:
if (browser == 'IE' && ieVersion == 11)
htmlTag.className += ' ie11';
。
这就是你所需要的一切。您可以使用此脚本在较低的模式/视图中捕获更高的IE,包括兼容性〜。