Internet Explorer 8 - сломался сайт

Материал из 1GbWiki.

(Различия между версиями)
Перейти к: навигация, поиск

Текущая версия

В статье описываются действия по исправлению сайта неверно отображаемого в обозревателе Internet Explorer версии 8, но правильно отображаемого в обозревателях Internet Explorer предыдущих версий.

Если вам доступен разработчик сайта - обратитесь к нему, возможно имеет смысл передать разработчику ссылку на статью Internet Explorer 8 - режимы совместимости и на эту статью. Если вы будете обращаться к разработчику - читать дальше не обязательно.

Содержание

[править] Что делать

Вам следует установить флаг совместимости указывающий браузеру Internet Explorer 8, что сайт должен быть открыт в режиме совместимости с Internet Explorer 7. Флаг устанавливается через HTTP-заголовок в ответе веб-сервера с именем "X-UA-Compatible" и значением "IE=EmulateIE7". Флаг может быть установлен как для всего сайта через конфигурацию веб-сервера, так и для отдельных страниц через добавление элемента <meta> в заголовок страницы.

Подробности далее.

[править] Изменение страниц сайта

Для нужной страницы нужно добавить в тело элемента <head> элемент <meta> с атрибутом http-equiv как показано в примере. Если данный заголовок для вашего сайта формируется в одном месте - достаточно будет одного исправления для всех файлов сайта. Если для каждой страницы он формируется отдельно или все страницы статические - нужно исправлять для каждой страницы сайта.

<html>
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
  </head>
  <body>
  ...

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

[править] IIS версии 6

Установка нужного режима выполняется через запрос к службе поддержки, самостоятельно сделать это нельзя. Отправьте службе поддержки запрос:

для сайта example.com необходимо установить дополнительный http-заголовок "X-UA-Compatible: IE=EmulateIE7"

[править] IIS версии 7

Делается через файл web.config, если файла нет - нужно его создать в простом текстовом редакторе. Ниже указан XML-элемент, который нужно добавить в файл. От вас при этом требуется знание языка XML:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
   <system.webServer>
      <httpProtocol>
         <customHeaders>
            <clear />
            <add name="X-UA-Compatible" value="IE=EmulateIE7" />
         </customHeaders>
      </httpProtocol>
   </system.webServer>
</configuration>

[править] Apache

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

Header set X-UA-Compatible "IE=EmulateIE7"

[править] Почему это случилось?

Браузер Internet Explorer 8 по умолчанию использует режим обработки страниц в соответствии со всеми актуальными веб-стандартами, предыдущие версии Internet Explorer использовали режим обработки страниц отличающийся от веб-стандартов. Если вы наблюдаете проблему, то значит ваш сайт "заточен" под Internet Explorer старых версий и в новых условиях работает некорректно. Подробнее смотрите вступление к статье Internet Explorer 8 - режимы совместимости.

[править] Ссылки по теме

Личные инструменты