views:

50

answers:

0

I have an ASP.Net MVC site that I want to render some custom HTML 5 canvasses in. I am getting a strange issue with the server serving up extra characters that are not in the source code.

In order to use an HTML 5 canvas in IE 8 you have to add the following tag in the html head:

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

For some reason this is served up as:

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

Of course the duff markup causes the excanvas script to not be loaded by IE. I can't understand why the line gets garbled. I have the following doctype which is documented at http://www.w3schools.com/html5/tag_doctype.asp:

<!DOCTYPE html>

I'm not familiar with using HTML 5 or the new doctype so I'm suspicious of it. I'm also hosting on Apache with Mono so maybe that's what's garbling the line.

The page in question is at: http://openancestry.org/FamilyTree/Simpsons

Anyone seen this before or know why I cant use the "if IE" syntax?

UPDATE: Well I'm pretty sure it's either Mono or Apache thats garbling the HTML so I've used the workaround below which adds a compatibility meta tag for IE8 and includes excanvas for any IE that predates IE9. I'd still appreciate any answers on why the HTML gets garbled.

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