У меня есть сайт 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>
<% } %>
<canvas>
, поэтому вы, вероятно, хотите, чтобы ваш условный комментарий выбирал IE 8 и более ранние версии. Это должно работать (как только сервер перестанет это пережевывать):<!--[if lte IE 8]><script src="../../Scripts/excanvas.js"></script><![endif]-->
- person Paul D. Waite   schedule 31.10.2010