2010-10-31 5 views
3

J'ai un site ASP.Net MVC dans lequel je veux rendre des canevas HTML 5 personnalisés. Je rencontre un problème étrange avec le serveur qui sert des caractères supplémentaires qui ne sont pas dans le code source.Etranges caractères supplémentaires dans html rendu sur IE 8

Pour utiliser une toile HTML 5 dans Internet Explorer 8, vous devez ajouter la balise suivante dans la tête html:

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

Pour une raison quelconque cela est servi comme:

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

Bien sûr, le balisage duff fait que le script excanvas n'est pas chargé par IE. Je ne peux pas comprendre pourquoi la ligne est brouillée. Je le doctype suivant qui est documenté à http://www.w3schools.com/html5/tag_doctype.asp:

<!DOCTYPE html> 

Je ne suis pas familier avec l'utilisation HTML 5 ou la nouvelle doctype Je suis tellement méfiant de celui-ci. J'héberge aussi sur Apache avec Mono, alors c'est peut-être ce qui chamboule la ligne.

La page en question est à l'adresse: http://openancestry.org/FamilyTree/Simpsons

Tout le monde vu ceci avant ou savoir pourquoi je ne peux pas utiliser la syntaxe « si IE »? Eh bien, je suis sûr que ce soit Mono ou Apache qui bafoue le HTML, donc j'ai utilisé la solution de contournement ci-dessous qui ajoute une balise META de compatibilité pour IE8 et comprend excanvas pour tout IE qui est antérieure à IE 9. J'apprécierais toujours des réponses sur pourquoi le HTML est brouillé.

<% 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

Très étrange. Hors sujet: [il semble que IE 9 va prendre en charge la balise ''] (http://www.windows7news.com/2010/06/24/microsoft-confirms-features-for-ie9-canvas-and -video-tags /), donc vous voulez probablement que votre commentaire conditionnel sélectionne IE 8 et plus tôt. Cela devrait fonctionner (une fois que le serveur arrête de mâchouiller): '' –

+0

Aussi, s'il vous plaît reportez-vous à la documentation officielle http://www.whatwg.org/specs/web-apps/current-work/multipage/ et n'utilisez jamais W3schools. –

+0

@grenade, j'ai utilisé la solution que vous avez fournie dans la mise à jour de votre question, merci pour cela. Je voulais juste noter que j'avais le même problème dans la version suivante de Mono pour Apache, sur Yosemite: Compilateur Mono JIT version 3.10.0 (4 ans depuis la question a été posée la première fois!) –

Répondre

0

Avant de répondre, je veux souligner que vous manque type="text/javascript" dans votre exemple.

Il est possible que l'analyseur ASP.NET de Mono corrige votre commentaire. Quelle version de Mono utilisez-vous (et quelle plate-forme je suppose).

J'ai juste essayé ceci sur Mono 2.10 sur Mac et n'ai pas eu ce problème.

+2

Je pense 'type = "text/javascript" 'est déconseillé en HTML 5. –

+0

@Xavier - Merci. Je ne savais même pas que c'était optionnel. La raison pour laquelle je l'ai mentionné est que je pensais que cela pourrait confondre ASP.NET puisque vous pouvez utiliser la balise script pour avoir du code C# ou VB.NET aussi bien. – Justin