2010-10-31 79 views
3

我有一个ASP.Net MVC网站,我想呈现一些自定义的HTML 5 canvass。我收到一个奇怪的问题,服务器不提供额外的字符源代码。在IE 8上呈现的html中出现奇怪的额外字符

为了使用HTML 5的画布IE 8中已添加以下代码在HTML头:

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

出于某种原因,这是担任了为:

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

当然,duff标记会导致excanvas脚本不能被IE加载。我无法理解为什么这条线路出现乱码。我有以下的DOCTYPE这是在http://www.w3schools.com/html5/tag_doctype.asp记载:

<!DOCTYPE html> 

我不熟悉使用HTML 5或新的文档类型,所以我怀疑它。我也在Mono上主持Apache,所以也许这就是弄乱了线路。

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

没有人见过这样或知道为什么我不能用“如果IE”语法?

更新: 嗯,我很确定它是单声道或阿帕奇多数民众赞成混合的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> 
<% } %> 
+3

很奇怪。题外话:[看起来IE 9将支持''标签](http://www.windows7news.com/2010/06/24/microsoft-confirms-features-for-ie9-canvas-and -video-tags /),所以你可能希望你的条件注释选择IE 8和更早版本。这应该工作(一旦服务器停止咀嚼它):'<! - [if lte IE 8]>' – 2010-10-31 19:40:11

+0

另外,请请参阅官方文档http://www.whatwg.org/specs/web-apps/current-work/multipage/,绝对不要使用W3schools。 – 2010-11-03 00:35:10

+0

@grenade,我用你在问题更新中提供的解决方案,谢谢你。 只是想注意到我在以下版本的Mono for Apache,在优胜美地时遇到了同样的问题: 单声道JIT编译器版本3.10.0(自问题第一次提出后4年) – 2014-12-15 18:40:05

回答

0

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

Mono中的ASP.NET分析器可能会损坏您的评论。您使用的是哪种版本的Mono(以及我认为的平台)。

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

+2

我认为'type =在HTML 5中不鼓励使用“text/javascript”'.'''''''''''' – 2011-03-07 04:55:42

+0

@Xavier - 谢谢。我甚至不知道它是可选的。我之所以提到它的原因是我认为它可能会让ASP.NET感到困惑,因为您可以使用script标签来拥有C#或VB.NET代码。 – Justin 2011-03-07 05:28:15