Почему IE9 переключается в режим совместимости на моем веб-сайте?
Я только что установил бета-версию IE9 и на определенном сайте, который я создал (HTML5). IE9 перескакивает в режим совместимости, если я не скажу ему вручную. Я попытался удалить несколько частей сайта, но никаких изменений. Включает удаление всех CSS. На каком-то другом сайте меня все идет хорошо.
Кроме того, не устанавливайте его вручную, потому что тогда IE9 запоминает пользовательский параметр, и вы не можете вернуть его обратно в автоматическое (или, по крайней мере, я не нашел, даже не используя частный просмотр и очищающий кеш)
В любом случае. Сайт, на котором он переходит в режим совместимости: http://alliancesatwar.com/guide/
Там, где он делает правильный: http://geuze.name/basement/ (я не могу разместить более 1 гиперссылки)
Оба используют один и тот же doctype
и все. Эти сайты имеют много общего (помимо внешнего вида), используя один и тот же базовый шаблон (кодирование, метатеги, doctype и один и тот же javascript).
Было бы здорово, если бы у кого-то был ответ для меня! Веб-сайт HTML5, который отображается в IE7-режиме, довольно... lame.
Ответы
Ответ 1
Работает в IE9 documentMode для меня.
Без X-UA-Compatible
header/meta для установки явного documentMode вы получите режим, основанный на:
- перед тем, как пользователь нажал кнопку "Совместимость" в этом домене;
- возможно, также, произошло ли это автоматически из-за какого-либо другого содержимого на сайте, вызвавшего аварийный рендеринг IE8/9 и возвращающегося назад к старому средству визуализации;
- ли пользователь решил поместить все сайты в режим совместимости по умолчанию,
- указывает ли IE, что сайт находится в вашей интрасети, и поэтому по умолчанию отображается представление совместимости;
- относится ли данный сайт к собственному списку веб-сайтов Microsoft, для которого требуется просмотр совместимости.
Вы можете изменить эти параметры в меню "Инструменты → Параметры совместимости" в меню IE. Конечно, это меню теперь скрытно скрыто, поэтому вы не увидите его, пока не нажмете Alt.
Как автор сайта, если вы уверены, что ваш сайт соответствует стандартам (хорошо проявляется в других браузерах и использует функцию обнюхивания, чтобы решить, какие браузерные способы использования), я предлагаю использовать:
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
или HTTP-заголовок:
X-UA-Compatible: IE=Edge
чтобы получить последний рендерер, независимо от того, какая версия IE используется.
Ответ 2
Я положил
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
первая вещь после
<head>
(Я читаю его где-то, я не помню)
Я не мог поверить, что это сработало!!
Ответ 3
Чтобы заставить IE отображать в режиме стандартов IE9, вы должны использовать
<meta http-equiv="X-UA-Compatible" content="IE=edge">
Некоторые условия могут привести к переходу IE9 в режимы совместимости. По умолчанию это может происходить на сайтах интрасети.
Ответ 4
Я написал этот комментарий в отдельном потоке StackOverflow, но подумал, что стоит повторить здесь:
Для нашего собственного приложения ASP.Net добавление тега "X-UA-Compatible" на веб-странице, в файле web.config или в коде, не имеет абсолютно никакого значения.
Единственное, что сработало для нас, - это вручную отключить этот параметр в IE8:
![enter image description here]()
(Вздох.)
Эта проблема возникает только с IE8 и IE9 на сайтах интрасети. Внешние сайты будут работать нормально и использовать правильную версию IE8/9, но для внутренних веб-сайтов IE9 внезапно решает это на самом деле IE7 и не имеет поддержки HTML 5.
Нет, я тоже не совсем понимаю эту логику.
Мое неохотное решение состояло в том, чтобы проверить, поддерживает ли браузер поддержку HTML 5 (создавая холст и проверяя, действительно ли он), и отображая это сообщение пользователю, если оно недействительно:
![enter image description here]()
Это не особенно удобно, но пользователь может отключить эту раздражающую настройку
кажется, единственный способ позволить им правильно управлять веб-приложениями HTML 5.
Или попросите пользователей использовать Chrome.; -)
Ответ 5
На сайте http://www.HTML-5.com/index.html есть метатег, совместимый с X-UA, но по-прежнему входит в представление совместимости, как указано в "разорванном page" в адресной строке. Как вы получаете параметр меню, чтобы заставить IE 9 (окончательная версия 9.0.8112.16421) отображать страницу в режиме стандартов? Я попытался щелкнуть правой кнопкой мыши этот разрывающий значок страницы, а также трюк "Alt", чтобы отобразить дополнительные опции меню, упомянутые Rene Geuze, но они не сработали.
Ответ 6
Как и в случае с более современными веб-сайтами, если вы используете условные выражения в своем теге html в соответствии с шаблоном, это по какой-то причине приведет к тому, что ie9 по умолчанию будет работать в режиме совместимости. Исправление состоит в том, чтобы переместить ваши условные выражения из тега html и добавить их в тег тела, другими словами, из раздела главы. Таким образом, вы все равно можете использовать эти классы в своей таблице стилей для ориентации на старые браузеры.
Ответ 7
Выглядит хорошо для меня:
![alt text]()
Вы уверены, что не были в настройках глобально или что-то еще? Это чистая установка бета-версии в Windows 7. Средства разработчика сообщают, что страница по умолчанию работает в стандартном режиме IE9.
Ответ 8
Мне недавно пришлось решить эту проблему, и вот что я сделал:
Прежде всего, это решение связано с настройкой сервера Apache.
Вторая основная мысль заключается в том, что в IE9 есть ошибка, которая означает, что метатег не будет работать, вместо этого решения попробуйте это
- найдите/откройте свой httpd.conf
-
раскомментировать/или добавить следующую строку
LoadModule headers_module modules/mod_headers.so
-
добавить следующие строки
<IfModule headers_module>
Header set X-UA-Compatible: IE=EmulateIE8
</IfModule>
-
сохранить/перезагрузить сервер Apache,
- перейдите на страницу с IE9, используйте такие инструменты, как wireshark или скрипт или использовать инструменты разработчика IE, чтобы проверить заголовок там