【问题标题】:Strange extra characters in rendered html on IE 8IE 8 上呈现的 html 中出现奇怪的额外字符
【发布时间】:2010-10-31 19:30:34
【问题描述】:

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

【问题讨论】:

  • 很奇怪。题外话:it looks like IE 9 is going to support the &lt;canvas&gt; tag,因此您可能希望您的条件注释选择 IE 8 及更早版本。这应该可以工作(一旦服务器停止咀嚼它):&lt;!--[if lte IE 8]&gt;&lt;script src="../../Scripts/excanvas.js"&gt;&lt;/script&gt;&lt;![endif]--&gt;
  • 另外,请参考官方文档whatwg.org/specs/web-apps/current-work/multipage,千万不要使用W3schools。
  • @grenade,我使用了您在问题更新中提供的解决方案,谢谢。只是想指出,我在优胜美地上的以下 Mono for Apache 版本中遇到了同样的问题:Mono JIT 编译器版本 3.10.0(自首次提出问题以来 4 年!)

标签: asp.net-mvc html mono apache2 excanvas


【解决方案1】:

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

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

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

【讨论】:

  • 我认为在 HTML 5 中不鼓励使用 type="text/javascript"
  • @Xavier - 谢谢。我什至不知道这是可选的。我提到它的原因是我认为它可能会混淆 ASP.NET,因为您也可以使用脚本标记来拥有 C# 或 VB.NET 代码。
猜你喜欢
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 2021-08-11
  • 1970-01-01
  • 1970-01-01
  • 2012-08-15
  • 2020-06-23
相关资源
最近更新 更多