Как отключить вид совместимости в IE - PullRequest
73 голосов
/ 14 июня 2011

Мне интересно, как вы не позволяете людям, использующим IE 8, переходить в режим совместимости?

<meta http-equiv="X-UA-Compatible" content="IE=8" />

Я нашел этот тег и думаю, что это заставляет людей оставаться в режиме IE-8, но яя не уверен и не могу проверить, как у меня IE 9.

Если люди в режиме IE 9, я заставляю их не переходить в режим совместимости IE 8 или IE 7?

Iпопытался вставить вышеупомянутую строку в мой код и перешел к IE 9 -> Инструменты -> Представление совместимости (выделено серым цветом)

, но «Настройки представления совместимости» не были выделены серым, и, кажется, вы могли бы добавить сайт черезтам.

Так что, не должно отключить?

Ответы [ 8 ]

91 голосов
/ 28 апреля 2012

Все, что вам нужно, это принудительно отключить CM в IE - просто вставьте этот код (в IE9 и ниже см будет отключен):

<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />

Источник: http://twigstechtips.blogspot.com/2010/03/css-ie8-meta-tag-to-disable.html

68 голосов
/ 14 января 2014

Этого должно быть достаточно, чтобы заставить IE пользователя отказаться от режима совместимости в любой IE версии:

<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />

Однако есть несколько предостережений, о которых следует знать:

  • Метатег выше должен быть включен в качестве самого первого тега под <head>. Над ним может быть размещен только тег <title>.

Если вы этого не сделаете, вы получите сообщение об ошибке IE9 Инструменты разработчика: X-UA-Compatible META tag ignored because document mode is already finalized.

  • Если вы хотите, чтобы эта разметка проверялась, убедитесь, что вы не забыли закрыть тег meta с помощью /> вместо >.

  • Начиная с IE11, режим края является предпочтительным режимом документа. Для поддержки / включения этого используйте декларацию типа документа HTML5 <!doctype html>.

  • Если вам нужна поддержка веб-шрифтов на IE7, убедитесь, что вы используете <!DOCTYPE html>. Я протестировал его и обнаружил, что рендеринг веб-шрифтов на IE7 стал довольно ненадежным при использовании <!doctype html>.

Использование Google Chrome Frame пользуется популярностью, но, к сожалению, в этом месяце оно будет прекращено в январе 2014 года.

<meta http-equiv="X-UA-Compatible" content="IE=EDGE,chrome=1">

Обширная связанная информация здесь . Подсказка по использованию его в качестве первого метатега приведена в ранее упомянутом источнике здесь , который был обновлен.

49 голосов
/ 15 июня 2011
<meta http-equiv="X-UA-Compatible" content="IE=8" /> 

должен заставить вашу страницу отображаться в стандартах IE8.Пользователь может добавить сайт в список совместимости, но этот тег будет иметь приоритет.

Быстрый способ проверить это - загрузить страницу и ввести следующую адресную строку:

javascript:alert(navigator.userAgent) 

Если вы видите IE7 в строке, он загружается в режиме совместимости, в противном случае нет.

9 голосов
/ 19 декабря 2012

Если вы используете ASP.NET MVC, я обнаружил, что Response.AddHeader("X-UA-Compatible", "IE=edge,chrome=1") в блоке кода в _Layout работает достаточно хорошо:

@Code
    Response.AddHeader("X-UA-Compatible", "IE=edge,chrome=1")
End Code
<!DOCTYPE html>
everything else
5 голосов
/ 17 ноября 2014

Ответ, данный FelixFett, работал для меня.Повторим:

<meta http-equiv="X-UA-Compatible" content="IE=11; IE=10; IE=9; IE=8; IE=7; IE=EDGE" />

У меня это первый мета-тег в моем коде.Я добавил 10 и 11, так как это версии, которые сейчас публикуются для Internet Explorer.

Я бы только прокомментировал его ответ, но у меня недостаточно высокая репутация ...

2 голосов
/ 18 июля 2014

Другой способ добиться этого в Apache - поместить следующие строки в .htaccess в корневой папке вашего сайта (или в конфигурационных файлах Apache).

BrowserMatch "MSIE" isIE
BrowserMatch "Trident" isIE
Header set X-UA-Compatible "IE=edge" env=isIE

Для этого необходимо, чтобы у вас были включены модули mod_headers и mod_setenvif.

Дополнительный заголовок HTTP отправляется только в браузеры IE, а остальные нет.

1 голос
/ 04 июля 2014

В JSF я использовал:

<h:head>
    <f:facet name="first">
        <meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
    </f:facet>

    <!-- ... other meta tags ... -->

</h:head>
0 голосов
/ 14 июня 2011

Добавление тега на страницу не будет управлять пользовательским интерфейсом в панели управления Интернетом (диалоговое окно, которое появляется при выборе «Сервис» -> «Параметры»). Если вы просматриваете свою домашнюю страницу, которая может быть google.com, msn.com, about: blank или example.com, панель управления Интернетом не может определить содержание вашей страницы и не загружает ее. это на заднем плане.

Посмотрите этот документ на MSDN , в котором обсуждается режим совместимости и как его отключить для вашего сайта.

...