如何检测小于10的msie?

时间:2014-03-25 08:44:06

标签: javascript jquery

可能会有很多问题和答案,但我无法发现它确实是检测低于10的Internet Explorer版本的最佳,最快速和最简单的方法。

那么,如何检测少于10的Internet Explorer?

2 个答案:

答案 0 :(得分:0)

没有像下面列出的解决方案那样快速和简短的解决方案。

var IElt10=0/*@cc_on@if(@_jscript_version<10)1@end@*/;

上面的解决方案将变量IElt10的值设置为0(如果浏览器大于10,则在if语句中计算为false)和1(在if语句中计算为true)浏览器小于10.这将允许您使用上面的代码执行以下操作:

var IElt10=0/*@cc_on@if(@_jscript_version<10)1@end@*/;
if (IElt10){
    alert("You are using a version of internet explorer less than 10");
} else {
    alert("You're not using a version of internet explorer less than 10");
}

它的工作原理基于conditional comments。由于条件注释仍然是注释,因此大多数(如果不是全部)最小化器不会检测到条件注释很重要,并将其与其余注释一起丢弃。解决这个问题的一个简单方法是简单地将IElt10的值放在类似警报的位置,如下所示:

源代码:

var IElt10=alert(0/*@cc_on@if(@_jscript_version<10)1@end@*/);
if (IElt10){
    alert("You are using a version of internet explorer less than 10");
} else {
    alert("You're not using a version of internet explorer less than 10");
}

然后,您可以缩小代码。并且,在缩小的代码中,找到警报,并用原始表达式替换整个警报语句(即整个警报(0))。例如:

之前缩小:

alert(0)?alert("You are using a version of internet explorer less than 10"):alert("You're not using a version of internet explorer less than 10")

现在,将alert(0)替换为0/@cc_on@if(@_jscript_version<10)1@end@/,如下所示。

缩小后:

0/*@cc_on@if(@_jscript_version<10)1@end@*/?alert("You are using a version of internet explorer less than 10"):alert("You're not using a version of internet explorer less than 10")

并且,wala:你超越了缩放器,所以现在你有了工作,缩小了代码。

答案 1 :(得分:-1)

您可以在浏览器中测试用户代理字符串,但这些日子不鼓励反对检测您的Web应用程序所需的特定功能。查看Modernizr之类的框架,让您更轻松。如果你真的想去检测IE&lt; 10,那就是&#34; MSIE&#34;在UA字符串后跟一个版本,例如&#34; MSIE 9.0&#34;