2010-10-31 82 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