Баг IE?
Обязательно убедитесь, что в код добавлен дескриптор окончания сценария. Все строки кода JavaScript должны быть расположены между двумя дескрипторами начала и завершения сценария. Если не поставить дескриптор завершения сценария, то он может просто не запуститься, а документ HTML будет выглядеть довольно странно.
Но всё равно непонятно, почему общие правила XHTML не распространяются на <script>

IE начинает глючить, удивился и забилА и я бы забил, если бы не пришлось этот баг ловить =) А когда обнаружил такое - очень удивился.
Более того, на самом деле все браузеры его парсят как html если у него Content-type text/html.
Что бы FF или Opera парсили документ как XHTML его нужно отдавать с правильным Content-Type: application/xhtml+xml, но тогда IE его не открывает, а предлагает сохранить…
С другой стороны, мы проверяли - DOCTYPE-таки влияет на поведение парсера IE.
Парсера или рендеринга?
Парсера или рендеринга?Разве это не взаимосвязанные вещи? Ведь то представление, которое впоследствии рендерится, формируется на этапе парсинга, разве нет? И тут уж от настроек парсера зависит, злой зарубит ошибки и отрендерится всё криво.
сначала идет парсинг
затем считанную информацию обрабатывает рендер и формирует картинку.
судя по тому, что сайты показываются еще до полной загрузки говорит о том (режим телепатии что парсер работает с callback`ами в рендер (например после каждого закрытого тега сообщает уже считанную структуру рендеру и тот формирует частичную картинку)
я хоть и далек от веб-технологий, но ясно осознаю, что парсер и рендер - две абсулютно разные и несвязанные компоненты.а) веб-технологии как таковые тут не при чём, это уже аспекты реализации браузера
...
затем считанную информацию обрабатывает рендер и формирует картинку.
б) никто и не говорил, что это одно и то же, речь шла только о том, что на формируемую рендером картинку влияет строгость парсера - это вполне логично
ты ж профи в этом

что на формируемую рендером картинку влияет строгость парсера - это вполне логичнои что?
это не противоречит тому, что доктайп влияет на рендеринг, а на парсер не влияет
ты ж профи в этомУвы, нет, ни парсю, ни рендерю..
это не противоречит тому, что доктайп влияет на рендеринг, а на парсер не влияетПочему?
Парсер встретил доктайп -> стал, к примеру, строже -> поменялось внутреннее представление -> изменилась картинка. Не напрямую жеж с HTML-кода картинка рендерится?

парсер: тупо считывает текст, строит по этому тексту некое внутреннее представление
и передает эту инфу рендереру
при другом доктайпе, парсер делает абсолютно тоже самое, например: передает рендереру что в этом месте картинка с такими то стилями
рендерер смотрит доктайп: ага, согласно этому доктайпу под таким то стилем мы имеем ввиду тото, под таким тото, а этот стиль вообще игнорим
и после этого показывает картинку соответствующим образом
Просто мне кажется, что рендер не сверяется с доктайпом а тупо визуализирует внутреннее представление, не проводя дополнительного анализа исходника. При этом, дефолтовые значения всяких там стилей от доктайпа также не зависят, они прошиты где-то глубоко и переопределяются только CSS-ом.
Что касается предыдущего поста, то я только имел ввиду то, что указанная в доктайпе DTD-схема влияет именно на поведение парсера, что и отражается на внутреннем представлении. Но это опять же завязано на моём предположении о том, что рендерер не смотрит код.
Короче, без знания устройства IE - это разговор ни о чём

Просто мне кажется, что рендер не сверяется с доктайпомВ IE >= 6 вообще два движка рендеринга и в зависимости от доктайпа выбирается один из них. А после этого, рендеринг действительно не сверяется с доктайпом, ему просто незачем. Раз он работает, значит доктайп был таким, что надо запускать его. Но дефолтные значения стилей у этих движков разные.
Интересно.
Оставить комментарий
2354570
Наткнулся на такую странность, IE 6.Веб-страница:
Обратите внимание на строчки script в секции head. При таком расположении IE 6 всё показывает нормально. Но если сделать так (поменять их местами):
- не отображает содержимое body вообще. Причём огнелис всё показывает правильно.
Если же сделать так (закрыть второй <script> явно):
- всё показывается.
Но в шапке-то документ заявлен как XHTML, ему прописана соответствующая схема. А значит, если элемент пуст, то можно закрывать первый же тег - <tag ... />. Разве это не распространяется на тэг <script>? Правильно ли себя ведёт IE, или это всё-таки баг? Ведь даже если предположить, что парсер явно ищет закрывающий тег - то почему не выдаются сообщения об ошибках JS?