Пустая страница в 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 отображал пустую страницу, когда другие браузеры отображают контент? Если да, то что вызывает это и что решает?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
2 184
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Не уверен, что это точно соответствует вашему опыту. Это зависит от того, какая конкретная версия 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-код, даже если ваша страница пуста.

Спасибо, это очень интересно, я буду тестировать. В этом случае View Source даже не открывает Блокнот. Я думаю, мне следует использовать анализатор пакетов, чтобы проверить, какие данные действительно передаются.

Liam 06.11.2008 15:56

Хорошая идея. Сложно попытаться диагностировать проблему с полностью пустой страницей, не так ли? Это вызвало у меня приступ, когда вышел IE6 SP2, и у меня были страницы с пустыми именованными div, которые закрывались автоматически. Дайте нам знать, что вы узнаете.

DOK 06.11.2008 16:02
Ответ принят как подходящий

Это проблема типа содержимого из IE. Он не умеет обращаться с application / xhtml + xml.

Хотя вы пишете xhtml + xml, IE знает только text + html. Это будет будущее, прежде чем все агенты узнают xhtml + xml

измените метатег с типом содержимого на content = "text / html;

Если я изменю его на text / html, смогу ли я использовать XHTML?

Liam 06.11.2008 16:02

Вы определенно можете использовать XHTML в IE, хотя, как я уже отмечал, есть несколько причуд. Я много лет кодировал XHTML исключительно в .Net.

DOK 06.11.2008 16:09

да, можете, но он будет отправлен в формате HTML. По крайней мере, вы можете выполнить проверку, чтобы убедиться, что у вас есть действительный xhtml. <br> См. Также: h3h.net/2005/12/xhtml-harmful-to-feelings

eddy147 07.11.2008 11:25

еще одно примечание: xhtml = html, но со структурой xml

eddy147 09.01.2009 16:40

Похоже на ошибку ошибка № 153 «Самозакрывающийся тег скрипта» в IE, который, как известно, вызывает пустые страницы.

Из-за ошибки IE вы можете кодировать НИКОГДА следующее и ожидать, что это будет работать в IE.

<script src = "...." />

(если тег самозакрывающийся, вас ждет мир боли)

Вместо этого всегда кодируйте как;

<script src = "...."></script>

Вы должны обслуживать страницы с заголовком Content-Type как text / html для пользователей IE. Вам не нужно менять метатег, просто оставьте его как application / xhtml + xml (IE проигнорирует его).

У меня была аналогичная проблема, зависящая от языка - только страница с многобайтовыми символами не отображалась в IE6 и IE7. Оказывается, в этих двух браузерах порядок метатега Content-Type и тега title имеет большое значение. Таким образом, размещение тега (содержащего японские символы) после метатега решило проблему.

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

Liam 08.10.2009 13:36

Я получил эту ошибку из-за опечатки.

Я написал метатег:

<meta http-equiv = "Content-Type" content = "text/html; charset=iso-8859-15" />

Благодаря вам я исправил это на:

<meta http-equiv = "Content-Type" content = "text/html; charset=iso-8859-1" />

и теперь у меня нет проблемы.

Другие вопросы по теме