我正在运行一个基于ASP.NET框架构建的DotNetNuke CMS网站。
我的页面皮肤中有一些脚本,我不想在IE8及以下版本上运行。我一直在谷歌,我发现这个IE条件声明。
<![if gt IE 8]>
根据http://msdn.microsoft.com/en-us/library/ms537512%28v=vs.85%29.aspx,此snippit应包含任何大于IE8的浏览器的中间代码。我尝试以下列方式使用此条件语句:
<![if gt IE 8]>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4f21643b21c50811"></script>
<![endif]-->
但是,这似乎不起作用,并且脚本不能在任何浏览器上运行。有没有更好的方法来实现这一目标?我的代码中是否存在语法错误?
感谢您的帮助! 亚历
答案 0 :(得分: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]-->
作为指令,但对于任何其他浏览器只是一个注释,它将被忽略。
答案 1 :(得分: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
答案 2 :(得分: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.x.x并为IE10 +版本加载jquery-2.x.x。