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 - режимы совместимости.