Почему мой сайт не работает в IE6 или IE7? - PullRequest
1 голос
/ 31 марта 2009

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

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

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

Ответы [ 4 ]

3 голосов
/ 31 марта 2009

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

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

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

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

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

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

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

1 голос
/ 31 марта 2009

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

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

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

0 голосов
/ 31 марта 2009

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

0 голосов
/ 31 марта 2009

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

Это все еще не работает, хотя ...

Найдена проблема:

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

<?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)

...