Как отключить просмотр в режиме совместимости в IE

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

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

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

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

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

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

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


comment
@ Sparky672 - да, верю. Я не поддерживаю IE 7 и отображаю предупреждение об устаревании браузера. В ходе исследований юзабилити я обнаружил, что большинство людей не сообщают, что они могут находиться в режиме совместимости (и на самом деле не знают о том, что они его включили), и когда вы говорите им, что их браузер устарел, и они думают, что используют IE 8 ( последний браузер на момент изучения) путаются очень быстро. Лучшее решение - заставить их вернуться к IE 8/9 (к тому, что они, вероятно, думают, что они все равно работают)   -  person chobo2    schedule 15.06.2011


Ответы (8)


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

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

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

javascript:alert(navigator.userAgent) 

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

person Sriranga Chidambara    schedule 15.06.2011
comment
Что произойдет, если при использовании IE 9 они перейдут на IE 8? - person chobo2; 15.06.2011
comment
Если пользователь использует его в IE9, он будет отображать его в стандартном режиме IE8. Вы также можете использовать панель инструментов разработчика F12 в IE9, чтобы проверить это. - person Sriranga Chidambara; 16.06.2011
comment
Лучше использовать ‹meta http-Equiv = X-UA-Compatible content = IE = edge /› Кроме того, если сайт размещен в том, что Microsoft считает интрасетью, вы облажались, он все равно будет отображаться в режиме совместимости. Единственный способ изменить это - снять флажок Отображать сайты интрасети в режиме совместимости в меню Инструменты - Параметры просмотра в режиме совместимости. Эта настройка по умолчанию в IE8 + действительно воняет. - person oldwizard; 02.12.2011
comment
Я поддерживаю это. Только что уловил отображение сайтов интрасети в настройках по умолчанию в режиме совместимости (в моем случае в IE9). - person Derek Morrison; 17.02.2012
comment
У меня установлен флажок «Отображать сайты интрасети в режиме совместимости», но метатег X-UA-Compatible, похоже, переопределяет его. - person Justin Skiles; 08.02.2013
comment
@SrirangaChidambara: У меня есть мета-оператор после ‹head› перед другими тегами, я нажимаю F12, но на панели инструментов разработчика IE9 все еще отображается режим IE9, а не IE8. IE10 по-прежнему говорит IE10, а не IE8. - person frumbert; 27.06.2013
comment
Чтобы перейти к отображению сайтов интрасети в режиме совместимости, нажмите ALT, Инструменты. Потратил некоторое время на то, чтобы щелкнуть головой по инструментам в DevTools - person stuartdotnet; 24.10.2013
comment
@JustinSkiles вы когда-нибудь выясняли, почему ваш метатег может переопределять ваши Display Intranet Sites in Compatibility View настройки? Кажется, что для некоторых это работает, но для других, таких как я, я должен вручную войти и снять этот параметр IE независимо от того, включаю ли я метатег. - person Kyle Vassella; 02.10.2018

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

<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

person FelixFett    schedule 28.04.2012
comment
Это спасло меня благодаря совместимости с Twitter Bootstrap и IE. К вашему сведению - это должен быть ПЕРВЫЙ метатег. - person nope_four; 21.10.2013
comment
Разве это не то же самое, что ‹meta http-Equiv = X-UA-Compatible content = IE = edge /›? - person eug; 26.12.2013
comment
позаботьтесь о том, чтобы перед этим тегом не использовались условные комментарии. Иначе не получится! Нашел там подсказку: stackoverflow.com/questions/3449286/ - person Karl Adler; 26.03.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">

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

person Wallace Sidhrée    schedule 14.01.2014

Если вы используете 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
person Sami Lamti    schedule 19.12.2012

Ответ Феликса Фетта сработал для меня. Повторить:

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

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

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

person astburyj    schedule 17.11.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 и никому из остальных.

person Simon East    schedule 18.07.2014

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

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

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

</h:head>
person miso    schedule 04.07.2014

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

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

person i_am_jorf    schedule 14.06.2011