条件IF语句 - 如果是现代浏览器

时间:2012-10-10 10:42:19

标签: javascript internet-explorer cross-browser

我的JavaScript只需要定位现代浏览器(IE9,FF,Chrome等)并排除IE8及更早版本。我一直在试验,但我不确定它是否有效(没有适当的IE测试设施)。

我正在考虑添加一个比IE8更新的脚本,然后再为所有非IE添加脚本:

<!--[if gt IE 8)]><script src="sites/all/themes/customtheme/js/custom.js" type="text/javascript" charset="utf-8"></script><![endif]-->


<!--[if !IE]><!--><script src="sites/all/themes/customtheme/js/custom.js" type="text/javascript" charset="utf-8"></script><!--<![endif]-->

任何人都有任何经验或代码片段可以将脚本添加到现代浏览器并排除IE8及更旧版本吗?

3 个答案:

答案 0 :(得分:1)

您只需要一个标签:

<![if gt IE 8]>
<script src="sites/all/themes/customtheme/js/custom.js" type="text/javascript" charset="utf-8"></script>
<![endif]>

IE将使用该条件并仅包含IE9及更高版本的脚本,其他浏览器将忽略条件标记,并且由于它们不形成注释标记,因此它们将包含脚本。

请参阅downlevel-revealed conditional comments

答案 1 :(得分:0)

虽然不是您问题的直接答案,但

您应该做的是功能检测浏览器的功能。

Modernizr可以提供大部分帮助:

http://modernizr.com/

我之所以这样说,是因为基本上把除旧IE之外的所有浏览器放入一个所谓的“现代浏览器”桶中,你真的会在FF2,Opera或我的电视上运行吗?

答案 2 :(得分:0)

最好的方法是像你一样使用条件Css ....如何调用和定位每个IE版本有很多变化。

此css技巧也可能有所帮助

http://css-tricks.com/how-to-create-an-ie-only-stylesheet/

希望它有所帮助。