Режим совместимости IE: тег X-UA-Compatible 'Edge' - PullRequest
56 голосов
/ 25 ноября 2010

У меня есть это в <head>:

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

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

Ответы [ 4 ]

63 голосов
/ 15 апреля 2011

Этот тег попытается заставить браузер использовать последний режим рендеринга, поддерживаемый браузером.Это не вызовет режим совместимости.

Обратите внимание, что тег должен быть первым тегом в заголовке, иначе он не будет работать.Этот факт предпочитает использовать заголовки HTTP, если это возможно, поскольку порядок в заголовках HTTP не имеет значения.

Если браузер все еще остается в режиме совместимости, когда вы используете заголовок или метатег, вероятно, одна из этих вещейпричина:

  • вам не хватает нормального типа документа
  • браузер всегда настроен на использование режима совместимости
  • сайт размещен на "сайте в интрасети" инастройка по умолчанию для сайтов интрасети установлена ​​

Изменение настроек просмотра совместимости браузеров

Microsoft считает, что по крайней мере 192.168.xx находится на «сайте интрасети»,По умолчанию для сайтов интрасети в IE8 / IE9 используется режим совместимости.Это большая проблема для многих бизнес-приложений, так как программист НЕ МОЖЕТ переопределить эту опцию даже с этим метатегом.(«Отображение сайтов интрасети в представлении совместимости» не может быть переопределено метатегом или заголовком http - в этом случае браузер полностью контролирует представление совместимости)

Compatibility View Settings

Всегда добавлять этот метатег или заголовок http?

Еще одна полезная вещь при использовании этого метатега заключается в том, что значок «Просмотр совместимости» удален из адресной строки браузера.По крайней мере ваши пользователи не смогут выбрать режим рендеринга с помощью этой кнопки.

2 голосов
/ 24 июля 2013

Даже если вы сняли флажок «Отображать сайты интрасети в представлении совместимости» и в заголовках ответов указали X-UA-Compatible, есть еще одна причина, по которой ваш браузер может по умолчанию использовать «Просмотр совместимости» в любом случае - ваша группаПолитика.Найдите на своей консоли следующее сообщение:

HTML1203: xxx.xxx настроен для работы в представлении совместимости через групповую политику.

Где xxx.xxx - это домен вашего сайта (т. Е. Test.com).Если вы видите это, то групповая политика для вашего домена устанавливается так, что любой сайт, заканчивающийся на test.com, будет автоматически отображаться в режиме совместимости независимо от типа документа, заголовков и т. Д.

Для получения дополнительной информации см. Следующую информацию.ссылка (поясняет html коды): http://msdn.microsoft.com/en-us/library/ie/hh180764(v=vs.85).aspx

0 голосов
/ 16 апреля 2015

Я не эксперт, но методом проб и ошибок:

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

решил проблему для меня. Я использовал это на веб-сайтах и ​​в веб-приложениях, и это не позволило IE8 перейти в режим совместимости и отображалось как «стандартное» в IE10 и IE11.

0 голосов
/ 26 июня 2011

Какой смысл использовать только ключевое слово Edge?Я имею в виду, что если вы хотите, чтобы IE использовал самый последний механизм рендеринга, просто отбросьте весь метатег.

В противном случае он должен выглядеть примерно так (это приведет к тому, что IE8 будет вести себя так же, как IE7 и IE9, и более новые будутработать как обычно):

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7, IE=Edge" />
...