Странные лишние символы в отображаемом html в IE 8

У меня есть сайт ASP.Net MVC, на котором я хочу отображать некоторые пользовательские холсты HTML 5. У меня возникает странная проблема с сервером, обслуживающим дополнительные символы, которых нет в исходном коде.

Чтобы использовать холст 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. Я не могу понять, почему линия искажается. У меня есть следующий тип документа, который задокументирован по адресу http://www.w3schools.com/html5/tag_doctype.asp:

<!DOCTYPE html>

Я не знаком с использованием HTML 5 или нового типа документа, поэтому я с подозрением отношусь к этому. Я также размещаюсь на Apache с Mono, так что, возможно, это искажает линию.

Рассматриваемая страница находится по адресу: http://openancestry.org/FamilyTree/Simpsons.

Кто-нибудь видел это раньше или знает, почему я не могу использовать синтаксис «if IE»?

ОБНОВЛЕНИЕ: Ну, я почти уверен, что либо Mono, либо Apache искажают HTML, поэтому я использовал обходной путь, описанный ниже, который добавляет метатег совместимости для IE8 и включает excanvas для любого IE, предшествующего IE9. Я все еще был бы признателен за любые ответы о том, почему 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>
<% } %>

person grenade    schedule 31.10.2010    source источник
comment
Очень странно. Не по теме: похоже, что IE 9 будет поддерживать тег <canvas>, поэтому вы, вероятно, хотите, чтобы ваш условный комментарий выбирал IE 8 и более ранние версии. Это должно работать (как только сервер перестанет это пережевывать): <!--[if lte IE 8]><script src="../../Scripts/excanvas.js"></script><![endif]-->   -  person Paul D. Waite    schedule 31.10.2010
comment
Также см. официальную документацию whatwg.org/specs/web. -apps/current-work/multipage и никогда не используйте W3schools.   -  person Divya Manian    schedule 03.11.2010
comment
@grenade, я использовал решение, которое вы предоставили в обновлении вашего вопроса, спасибо за это. Просто хотел отметить, что у меня была такая же проблема в следующей версии Mono для Apache на Yosemite: компилятор Mono JIT версии 3.10.0 (4 года с тех пор, как вопрос был задан впервые!)   -  person Bill Keller    schedule 15.12.2014


Ответы (1)


Прежде чем я отвечу, я хочу указать, что в вашем примере отсутствует type="text/javascript".

Возможно, анализатор ASP.NET в Mono искажает ваш комментарий. Какую версию Mono вы используете (и какую платформу я полагаю).

Я только что попробовал это на Mono 2.10 на Mac, и у меня не было этой проблемы.

person Justin    schedule 07.03.2011
comment
Я думаю, что type="text/javascript" не рекомендуется в HTML 5. - person Xavier Poinas; 07.03.2011
comment
@ Ксавьер - Спасибо. Я даже не знал, что это необязательно. Причина, по которой я упомянул об этом, заключается в том, что я думал, что это может запутать ASP.NET, поскольку вы можете использовать тег script для кода C# или VB.NET. - person Justin; 07.03.2011