Internet Explorer 8 - сломался сайт
Материал из 1GbWiki.
Версия 19:34, 24 марта 2009 (править) Dmach (Обсуждение | вклад) м ← К предыдущему изменению |
Текущая версия (10:54, 25 марта 2010) (править) (отменить) Dmach (Обсуждение | вклад) м (→Ссылки по теме) |
||
(12 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
В статье описываются действия по исправлению сайта неверно отображаемого в обозревателе Internet Explorer версии 8, но правильно отображаемого в обозревателях Internet Explorer предыдущих версий. | В статье описываются действия по исправлению сайта неверно отображаемого в обозревателе 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 === | === IIS версии 6 === | ||
Строка 33: | Строка 26: | ||
Установка нужного режима выполняется через запрос к службе поддержки, самостоятельно сделать это нельзя. Отправьте службе поддержки запрос: | Установка нужного режима выполняется через запрос к службе поддержки, самостоятельно сделать это нельзя. Отправьте службе поддержки запрос: | ||
- | для сайта example.com необходимо установить дополнительный http-заголовок "X-UA-Compatible: EmulateIE7" | + | для сайта example.com необходимо установить дополнительный http-заголовок "X-UA-Compatible: IE=EmulateIE7" |
=== IIS версии 7 === | === IIS версии 7 === | ||
- | Делается через файл web.config, если файла нет - нужно его создать в | + | Делается через файл web.config, если файла нет - нужно его создать в простом текстовом редакторе. Ниже указан XML-элемент, который нужно добавить в файл. От вас при этом требуется знание языка XML: |
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
Строка 53: | Строка 46: | ||
=== Apache === | === Apache === | ||
- | Делается через файл . | + | Делается через файл .htaccess, ниже указан пример текста который нужно добавить в файл. Если файла нет - нужно его создать в простом текстовом редакторе. |
Header set X-UA-Compatible "IE=EmulateIE7" | Header set X-UA-Compatible "IE=EmulateIE7" | ||
+ | |||
+ | == Почему это случилось? == | ||
+ | |||
+ | Браузер Internet Explorer 8 по умолчанию использует режим обработки страниц в соответствии со всеми актуальными веб-стандартами, предыдущие версии Internet Explorer использовали режим обработки страниц отличающийся от веб-стандартов. Если вы наблюдаете проблему, то значит ваш сайт "заточен" под Internet Explorer старых версий и в новых условиях работает некорректно. Подробнее смотрите вступление к статье [[Internet Explorer 8 - режимы совместимости]]. | ||
== Ссылки по теме == | == Ссылки по теме == | ||
+ | * [[Internet Explorer 8 - режимы совместимости]] | ||
+ | * [http://blogs.msdn.com/ieru/archive/2010/03/10/how-ie8-determines-document-mode.aspx Как IE8 определяет режим документа] ([http://blogs.msdn.com/ie/archive/2010/03/02/how-ie8-determines-document-mode.aspx оригинал]) | ||
* [http://msdn.microsoft.com/ru-ru/library/cc817574.aspx MSDN - Совместимость мета-тегов и блокировок в будущем] | * [http://msdn.microsoft.com/ru-ru/library/cc817574.aspx MSDN - Совместимость мета-тегов и блокировок в будущем] | ||
* [http://msdn.microsoft.com/ru-ru/library/cc817570.aspx MSDN - Как немедленно исправить веб-узел?] | * [http://msdn.microsoft.com/ru-ru/library/cc817570.aspx MSDN - Как немедленно исправить веб-узел?] | ||
+ | |||
+ | [[Категория:Программирование]] |
Текущая версия
В статье описываются действия по исправлению сайта неверно отображаемого в обозревателе 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 - режимы совместимости.