Почему мой сайт не работает в IE6 или IE7?

По какой-то причине мой сайт отображает ошибку «Невозможно отобразить это сообщение» в этих браузерах при правильной работе в Firefox, Opera, Safari и IE8.

Выглядит это так: http://www.reviewsaurus.com/images/pagedisplay.png

Этот документ был успешно проверен как XHTML 1.0 Transitional!


person Tamara Wijsman    schedule 31.03.2009    source источник
comment
Стоит отметить, что это не работает в этом случае означает, что Internet Explorer не может отображать сообщение об ошибке веб-страницы (в отличие, скажем, от ошибки форматирования).   -  person AaronSieb    schedule 31.03.2009
comment
Почему бы не опубликовать в качестве ответа то, что вы нашли проблему ...   -  person Nick Bolton    schedule 01.04.2009
comment
Потому что мне нужно 48 часов, прежде чем я смогу это сделать. ;-)   -  person Tamara Wijsman    schedule 01.04.2009


Ответы (4)


Это не имеет ничего общего с ошибками HTML. Худшее, что можно сделать, - это показать искаженную или пустую страницу.

Происходит некоторая неправильная конфигурация сервера WordPress и gzip Content-Encoding.

Ваш сайт не работает в IE, но /index.php загружается нормально. Проверяя необработанный HTTP-ответ (используя Fiddler2), разница между двумя ответами заключается в том, что на запрос до /, WordPress (предположительно) добавляет следующий текст в тело ответа HTTP, сжатое с помощью gzip:

<!-- Page not cached by WP Super Cache. No closing HTML tag. Check your theme. -->

Из-за этого дополнения к содержимому, сжатому с помощью gzip, он больше не является надлежащим потоком gzip, и IE6 / 7 не может его распаковать.

В других браузерах, вероятно, лучше обрабатываются ошибки, поэтому они могут справиться с ошибками без проблем.

Я не знаю, как вы можете решить эту проблему, но Поиск Google по этому фрагменту текста обнаруживает несколько совпадений на wordpress.org по крайней мере.

person mercator    schedule 31.03.2009
comment
Похоже, это вызвало функцию, которая все равно будет искать ее случайным образом ... ‹! - Кешированная страница, сгенерированная WP-Super-Cache 31.03.2009 20:39:04 -› - person Tamara Wijsman; 31.03.2009

Это недопустимый XHTML. Если IE6 / 7 действительно интерпретирует его как XML, это заставит его прекратить синтаксический анализ. Можете дать скриншот, как выглядит сбой?

ОБНОВЛЕНИЕ: теперь, когда это XHTML Transitional, он проходит проверку, и у меня нет предложений, пока я не найду место, где я могу запустить IE.

ОБНОВЛЕНИЕ 2: только что запустил IE7 на сайте, и страница загрузилась нормально.

person Hank Gay    schedule 31.03.2009
comment
Я думаю, что ваша ссылка ошибочна, но я все равно попытаюсь понять, смогу ли я избежать ее интерпретации как XML. - person Tamara Wijsman; 31.03.2009

В IE7 он отображается нормально, хотя и медленно. Я бы по-прежнему рекомендовал исправить две ошибки и подтвердить как Strict, но мне кажется, что они не являются причиной вашей проблемы. IE6 и IE7 интерпретируют их как text / html.

person Scott    schedule 31.03.2009

Этот документ был успешно проверен как переходный XHTML 1.0!

Но все равно не работает ...

Обнаружил проблему:

Использовал следующие процедуры для удаления ненужных символов, но кажется неправильным.

<?php   
function callback($buffer) 
{ 
    $holdit=$buffer;
    $holdit=str_replace("   ", " ", $holdit); // tab
    $holdit=str_replace("  ", " ", $holdit); // double space
    $holdit=str_replace("\n", " ", $holdit); // new line
    $holdit=str_replace("\r", " ", $holdit); // new line
    $holdit = eregi_replace("<!--[^>]*-->"," ",$holdit); // comment
    return $holdit; 
}
ob_start("ob_gzhandler"); 
ob_start("callback");
?>

Кажется, мне эта функция тоже не нужна, без нее она работает быстрее.
(мне, наверное, тоже стоило выбрать один eregi_replace)

person Tamara Wijsman    schedule 31.03.2009
comment
Это загружает меня. Очистите кеш. - person Paolo Bergantino; 31.03.2009
comment
Вам следует использовать preg_replace (), а не eregi_replace (). Функции preg работают быстрее, а функции ereg будут исключены в PHP 5.3: wiki. php.net/doc/scratchpad/upgrade/53#deprecated - person mercator; 01.04.2009
comment
Спасибо, проверим позже и проведу обширное тестирование с использованием IE6 и IE7. - person Tamara Wijsman; 01.04.2009