我有一个 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>
<% } %>