Пустая страница в IE6
Сайт, над которым я работаю и который построен на 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 пустой страницы, когда другие браузеры отображают контент? Если так, то что вызывает это и что решает это?
6 ответов
Это проблема типа контента из IE. Он не знает, как обращаться с приложением / xhtml + xml.
Хотя вы пишете xhtml + xml, IE знает только text + html. Это будет будущее, прежде чем все агенты узнают xhtml + xml
измените свой метатег с типом контента на content="text/html;
У меня была похожая проблема, связанная с конкретным языком - только страницы с многобайтовыми символами не отображались в IE6 и IE7. Оказывается, в этих двух браузерах порядок метатега Content-Type и тега title очень важен. Таким образом, размещение тега (содержащего японские символы) после метатега решило проблему.
Похоже, ошибка #153 "Самозакрывающийся тег скрипта" в IE, который, как известно, вызывает пустые страницы.
Из-за ошибки IE вы НИКОГДА не можете кодировать следующее и ожидать, что он будет работать в IE.
<script src="...." />
(если тег самозакрывающийся, вас ждет мир боли)
Вместо этого всегда кодируйте как;
<script src="...."></script>
Вы должны обслуживать страницы с заголовком 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" />
и у меня сейчас нет проблем.
Не уверен, что это точно соответствует вашему опыту. Это зависит от того, какая конкретная версия 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, даже если ваша страница пуста.