HTML5 Shiv не разбирает достаточно быстро - PullRequest
1 голос
/ 03 апреля 2012

Один из наших веб-дизайнеров сейчас работает над сайтом и использует элементы HTML5, которые она стилизует в старых браузерах, используя хорошо документированный Html5Shiv;

http://css -tricks.com / html5-innershiv /

Она сообщила о довольно странном поведении сегодня, и похоже, что это причина. Первоначально это было очень запутанным, и пошло что-то вроде:

«Страница выглядит нормально, я обновляю ее, отлично обновляюсь, обновляюсь несколько раз, и иногда она не применяет мои стили к элементам HTML5»

В настоящее время лучшая теория заключается в том, что шив не запускается достаточно быстро, и страница загружается до того, как новые элементы будут зарегистрированы. Мне было интересно, если кто-нибудь может предложить надежный способ включения Shiv и убедиться, что он загружен и проанализирован ДО остальных элементов, так что они определенно будут стилизованы.

РЕДАКТИРОВАТЬ (подробнее)

Шив включен в заголовок, прямо под заголовком / метатегами;

<!--[if IE]> <script type="text/javascript" src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]-->

Бит, который разрабатывается, находится в нижнем колонтитуле и является межсайтовым. Размер многих страниц изменится, поскольку они работают на CMS, которую будет использовать наша маркетинговая команда, поэтому я не могу указать точный размер страницы. Все, что я хотел бы сказать, это то, что если размер страницы является проблемой, и нет обходного пути, может кто-то сообщить мне об этом, поскольку это будет означать, что мы в принципе не можем использовать HTML5 в этом проекте (или, по крайней мере, нам нужно добавить лишнее разметка, например, div, чтобы макет не сходил с ума)

РЕДАКТИРОВАТЬ 2

У меня нет шансов опубликовать код, к сожалению, - он может быть воссоздан только при очень непонятных обстоятельствах, и проект помечен как "совершенно секретный" в данный момент :( Если никто не знает, то я предполагаю, что это либо случай «все знают, что это происходит, но как бы игнорируют это» или просто что-то еще, кроме шива.

1 Ответ

2 голосов
/ 04 апреля 2012

Вы можете попробовать поместить код html5shiv (его немного) прямо в браузер в том же месте и посмотреть, поможет ли это.Таким образом, он не будет ожидать отдельного HTTP-запроса, который может вызвать проблему.

EDIT Я только что заметил, что вы говорите о innerShiv а не просто html5Shiv .InnerShiv только требуется, когда вы вставляете элементы HTML5 на лету, например, через jQuery и / или AJAX.Это то, что вы делаете, так как это не похоже на это.Если это так, все, что вам нужно, это html5Shiv .

EDIT2 Ах, ваш код выше использует html5Shiv, а не html5InnerShiv ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...