Сайт, над которым я работаю, построен с использованием PHP, иногда показывает абсолютно пустую страницу. На клиенте или на сервере сообщений об ошибках нет. Одна и та же страница может отображаться иногда, но не другие. Все страницы отлично работают в IE7, Firefox 3, Safari и Opera. Все страницы XHTML с этим мета-элементом:
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
Похоже, что я исправил проблему, добавив этот код PHP:
header('Content-type: text/html; charset=utf-8');
Я прочитал, что эта проблема может быть вызвана XHTML, кодировкой, сжатием gzip или кешированием, но никто не смог сделать резервную копию этих догадок.
Поскольку проблема была прерывистой, я не уверен, что мое решение действительно решило проблему.
Мой вопрос в том, есть ли воспроизводимые способы показать IE6 пустую страницу, когда другие браузеры отображают контент? Если да, то что его вызывает и что его решает?
Это проблема типа содержимого из IE. Он не знает, как обращаться с приложением / xhtml + xml.
Хотя вы пишете xhtml + xml, IE знает только текст + html. Это будет будущее, прежде чем все агенты узнают xhtml + xml
измените свой метатег с типом контента на content = "text / html;
Похоже на ошибку № 153 «Ошибка самозапускающегося скрипта» в IE, который, как известно, вызывает пустые страницы .
Из-за ошибки IE вы НИКОГДА не кодируете следующее и ожидаете, что он будет работать в IE.
<script src="...." />
(если тег сам закрыт, вы находитесь в мире боли)
Вместо этого всегда указывайте как;
<script src="...."></script>
У меня была аналогичная проблема, которая была специфичной для языка – только страница с многобайтными символами не отображалась в IE6 и IE7. Оказывается в этих двух браузерах, заказ метатега Content-Type и тега заголовка – большое дело. Поэтому помещаем тег (содержащий японские символы) после того, как метатег исправил проблему.
Не уверен, что это точно соответствует вашему опыту. Это зависит от конкретной версии IE (включая пакеты обновлений).
Известная проблема рендеринга с IE6 SP2 и IE7 (оба используют один и тот же движок рендеринга) – это наличие в вашем HTML сиротских тегов. Это может быть сиротский тег div или скрипта.
<script language="javascript"> // no closing tag alert('hello world'); <body> hello world </body>
Вышеизложенное выглядит просто в IE6 SP1 и Firefox, но вы увидите только пустую страницу в IE6 SP2 и IE7.
Существуют и другие теги, которые должны иметь отдельный закрывающий тег. Убедитесь, что в тегах <div>
и <script>
есть тег окончания </script>
или <div>
, а не только закрывающая косая черта в конце открытого тега. Другой – <textarea>
. У вас должны быть оба тега.
Вы можете проверить, происходит ли это с вашим сайтом, если вы можете просмотреть источник своей пустой страницы и получить исходный html, даже если ваша страница пуста.
Вы должны показывать страницы с заголовком Content-Type в виде text / html для пользователей IE. Вам не нужно менять метатег, просто оставьте его как application / xhtml + xml (IE проигнорирует его).
Я получил эту ошибку из-за ошибки ввода.
Я написал метатег:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
Благодаря вам я исправил это:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
и у меня сейчас нет проблемы.