Asp.net mvc IE 8上呈现的html中的奇怪额外字符
我有一个ASP.NETMVC站点,我想在其中呈现一些自定义HTML5画布。我遇到了一个奇怪的问题,服务器提供了源代码中没有的额外字符 为了在IE 8中使用HTML 5画布,必须在HTML头部添加以下标记:Asp.net mvc IE 8上呈现的html中的奇怪额外字符,asp.net-mvc,html,mono,apache2,excanvas,Asp.net Mvc,Html,Mono,Apache2,Excanvas,我有一个ASP.NETMVC站点,我想在其中呈现一些自定义HTML5画布。我遇到了一个奇怪的问题,服务器提供了源代码中没有的额外字符 为了在IE 8中使用HTML 5画布,必须在HTML头部添加以下标记: <!--[if IE]><script src="../../Scripts/excanvas.js"></script><![endif]--> 出于某种原因,这被用作: <!--[if IE]>IE]><scri
<!--[if IE]><script src="../../Scripts/excanvas.js"></script><![endif]-->
出于某种原因,这被用作:
<!--[if IE]>IE]><script src="../../Scripts/excanvas.js"></scr<![endif]-->
当然,duff标记导致IE无法加载excanvas脚本。我不明白为什么这行代码会乱码。我有以下doctype,记录在:
我不熟悉使用HTML5或新的doctype,所以我怀疑它。我也用Mono在Apache上托管,所以可能这就是造成混乱的原因
有关网页载于:
有人见过这个,或者知道我为什么不能使用“if-IE”语法吗
更新:
我很确定是Mono或Apache混淆了HTML,所以我使用了下面的解决方法,为IE8添加了兼容元标记,并为任何早于IE9的IE添加了excanvas。
如果您能回答HTML为什么会乱码,我将不胜感激
<% if (Request.Browser.Browser.Contains("IE") && float.Parse(Request.Browser.Version) < 9) { %>
<% if (float.Parse(Request.Browser.Version) > 7) { %>
<meta http-equiv="X-UA-Compatible" content="IE=7" />
<% } %>
<script type="text/javascript" src="../../Scripts/excanvas.js"></script>
<% } %>
7) { %>
在回答之前,我想指出您的示例中缺少type=“text/javascript”
Mono中的ASP.NET解析器可能会弄乱您的评论。您使用的是哪个版本的Mono(我想是哪个平台)
我刚刚在Mac上的Mono 2.10上试过,没有出现这个问题。非常奇怪。离题:,所以你可能希望你的条件评论选择IE 8和更早版本。这应该可以工作(一旦服务器停止咀嚼它):
另外,请参考官方文档,不要使用W3E。格林纳达,我使用了您在问题更新中提供的解决方案,谢谢。我只想指出,我在Yosemite上的以下版本的Mono for Apache中遇到了同样的问题:Mono JIT编译器版本3.10.0(这个问题提出已经4年了!)我认为HTML 5不鼓励使用type=“text/javascript”
。@Xavier-谢谢。我甚至不知道它是可选的。我提到它的原因是,我认为它可能会混淆ASP.NET,因为你也可以使用script标记来编写C#或VB.NET代码。
<% if (Request.Browser.Browser.Contains("IE") && float.Parse(Request.Browser.Version) < 9) { %>
<% if (float.Parse(Request.Browser.Version) > 7) { %>
<meta http-equiv="X-UA-Compatible" content="IE=7" />
<% } %>
<script type="text/javascript" src="../../Scripts/excanvas.js"></script>
<% } %>