3

我有一个 ASP.Net MVC 站点,我想在其中呈现一些自定义 HTML 5 画布。我遇到了一个奇怪的问题,即服务器提供了源代码中没有的额外字符。

为了在 IE 8 中使用 HTML 5 画布,您必须在 html 头中添加以下标记:

<!--[if IE]><script src="../../Scripts/excanvas.js"></script><![endif]-->

由于某种原因,这被用作:

<!--[if IE]>IE]><script src="../../Scripts/excanvas.js"></scr<![endif]-->

当然,duff 标记会导致 IE 无法加载 excanvas 脚本。我不明白为什么线路会乱码。我有以下文档类型,记录在http://www.w3schools.com/html5/tag_doctype.asp

<!DOCTYPE html>

我不熟悉使用 HTML 5 或新的文档类型,所以我对此表示怀疑。我也在使用 Mono 托管在 Apache 上,所以也许这就是乱码。

有问题的页面位于:http: //openancestry.org/FamilyTree/Simpsons

任何人以前见过这个或知道为什么我不能使用“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>
<% } %>
4

1 回答 1

0

在我回答之前,我想指出type="text/javascript"您的示例中缺少您。

Mono 中的 ASP.NET 解析器可能会破坏您的评论。您使用的是什么版本的 Mono(我想是什么平台)。

我刚刚在 Mac 上的 Mono 2.10 上试过这个,没有这个问题。

于 2011-03-07T04:52:06.273 回答