3

我正在运行一个基于 ASP.NET 框架的 DotNetNuke CMS 网站。

我的页面皮肤中有一些我不想在 IE8 及更低版本上运行的脚本。我一直在谷歌搜索,我发现了这个 IE 条件语句。

<![if gt IE 8]>

根据http://msdn.microsoft.com/en-us/library/ms537512%28v=vs.85%29.aspx,此代码段应包含任何大于 IE8 的浏览器的代码。我尝试通过以下方式使用此条件语句:

<![if gt IE 8]>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4f21643b21c50811"></script>
<![endif]-->

但是,这似乎不起作用,并且脚本不在任何浏览器上运行。有没有更好的方法来实现这个目标?我的代码中是否存在语法错误?

谢谢你的帮助!亚历克斯

4

3 回答 3

3

有条件的评论应该是:

<!--[if IE 8]>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4f21643b21c50811"></script>
<![endif]-->

感叹号后有两个破折号。

它被称为“条件注释”,因为它实际上是一个 HTML 注释:

<!-- this is a comment -->.

Internet Explorer(直到 IE9)例外并以特殊格式解析注释

<!--[ if ... ]
...
<![endif]-->

作为说明,但对于任何其他浏览器来说只是一个注释,它将被忽略。

于 2013-08-20T22:00:42.047 回答
1

只是想添加一些更新信息,从 IE10 及更高版本开始,不支持条件注释,所以使用这样的条件,

<!--[if gt IE 8]>
<script type="text/javascript"   src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4f21643b21c50811"></script>
<![endif]-->

其中包括一个gt运算符(每个问题帖子),这意味着该脚本实际上只会出现在 IE9 中,有效地使其在功能上与编写相同:

<!--[if IE 9]>
<script type="text/javascript"   src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4f21643b21c50811"></script>
<![endif]-->

有条件支持文章结束:https ://msdn.microsoft.com/en-us/library/ie/hh801214%28v=vs.85%29.aspx

条件评论资源:https ://msdn.microsoft.com/en-us/library/ms537512%28v=vs.85%29.aspx

于 2015-03-10T17:42:53.737 回答
0

只需添加一条信息即可为 IE10+ 和 IE9- 加载不同的脚本。

    <!--[if lt IE 10]>
         <script src="scripts/jquery-1.x.x.min.js" type="text/javascript"></script>
    <!--<![endif]-->
    <!--[if gte IE 10]><!-->
    <script src="jquery-2.x.x.min.js" type="text/javascript"></script>
    <!--<![endif]-->

注意第 4 行的代码,这会通知 IE10+ 第 5 行的脚本标记不是注释

上面的条件语句将在 IE9 或更低版本中加载 jquery-1.xx,在 IE10+ 版本中加载 jquery-2.xx。

于 2015-05-30T09:33:56.600 回答