[英]checking for IE11 in the javascript code
i am checking a script for IE11
, but the following does not seems to be working, it returns me false.我正在检查
IE11
的脚本,但以下内容似乎不起作用,它返回 false。
function isIE () {
var myNav = navigator.userAgent.toLowerCase();
alert(myNav);
return (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) : false;
}
alert(isIE());
it does seems to find msie
它似乎确实找到了
msie
can anyone update this function to detect IE11
任何人都可以更新此功能以检测
IE11
Checking for a specific browser isn't recommended any more - feature detection is generally more useful.不再推荐检查特定浏览器 - 功能检测通常更有用。 If you really need to detect IE11, the following page has an example script under the section on detecting IE xx:
如果你真的需要检测IE11,下面的页面在检测IE xx部分下有一个示例脚本:
http://www.javascriptkit.com/javatutors/navigator.shtml http://www.javascriptkit.com/javatutors/navigator.shtml
In case this link disappears in future, the script is as follows:万一此链接将来消失,脚本如下:
//userAgent in IE7 WinXP returns: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727)
//userAgent in IE11 Win7 returns: Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko
if (navigator.userAgent.indexOf('MSIE') != -1)
var detectIEregexp = /MSIE (\d+\.\d+);/ //test for MSIE x.x
else // if no "MSIE" string in userAgent
var detectIEregexp = /Trident.*rv[ :]*(\d+\.\d+)/ //test for rv:x.x or rv x.x where Trident string exists
if (detectIEregexp.test(navigator.userAgent)){ //if some form of IE
var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number
if (ieversion>=12)
document.write("You're using IE12 or above")
else if (ieversion>=11)
document.write("You're using IE11 or above")
else if (ieversion>=10)
document.write("You're using IE10 or above")
else if (ieversion>=9)
document.write("You're using IE9 or above")
else if (ieversion>=8)
document.write("You're using IE8 or above")
else if (ieversion>=7)
document.write("You're using IE7.x")
else if (ieversion>=6)
document.write("You're using IE6.x")
else if (ieversion>=5)
document.write("You're using IE5.x")
}
else{
document.write("n/a")
}
So to replace your function, you could use something like:因此,要替换您的功能,您可以使用以下内容:
function isIE() {
if (navigator.userAgent.indexOf('MSIE') != -1)
return true;
var detectIEregexp = /Trident.*rv[ :]*(\d+\.\d+)/
return detectIEregexp.test(navigator.userAgent);
}
var myNav = navigator.userAgent;
For IE10 and below对于 IE10 及以下
myNav.indexOf('MSIE ') != -1
For IE11对于 IE11
myNav.indexOf('Trident/') != -1
For IE12对于 IE12
myNav.indexOf('Edge/') != -1
Your updated function will be like this您更新的功能将是这样的
function isIE () {
var myNav = navigator.userAgent;
return (myNav.indexOf('MSIE ') != -1 || myNav.indexOf('Trident/') != -1 || myNav.indexOf('Edge/') != -1);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.