Режим совместимости IE: тег 'X-UA-Compatible' 'Edge'
У меня это в <head>
:
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
Он заставит последний режим рендеринга для IE, но считается ли режим совместимости последним?
Я имею в виду, например: используя этот код с IE8, он заставит его использовать режим совместимости IE8 или IE8?
Ответы
Ответ 1
Этот тег попытается заставить браузер использовать последний режим рендеринга, поддерживаемый браузером. Он не будет запускать режим совместимости.
Обратите внимание, что тег должен быть первым тегом в голове, иначе он не будет работать.
Этот факт способствует использованию HTTP-заголовков, если это возможно, поскольку порядок в заголовках HTTP не имеет значения.
Если в режиме совместимости завершается завершение работы браузера, когда вы используете заголовок или метатег, возможно, одна из этих причин:
- вам не хватает разумного метода
- в браузере всегда установлен режим совместимости.
- сайт размещен на "узле интрасети", а параметр по умолчанию для сайтов интрасети установлен
Изменение настроек просмотра совместимости браузеров
Microsoft считает, что по крайней мере 192.168.x.x находится на "сайте интрасети". По умолчанию для сайтов интрасети в IE8/IE9 используется режим совместимости. Это огромная проблема для многих бизнес-приложений, поскольку программист НЕ МОЖЕТ переопределить эту опцию даже с помощью этого метатега. ( "Отображать сайты интрасети в представлении Compatitiblity" не переопределяется метатегами или http-заголовком - браузер в этом случае полностью контролирует представление совместимости)
![Compatibility View Settings]()
Всегда добавляйте этот метатег или заголовок http?
Еще одна хорошая вещь об использовании этого метатега заключается в том, что значок "Compatibilty view" удаляется из адресной строки браузера. По крайней мере, ваши пользователи могут не решить режим рендеринга с помощью этой кнопки.
Ответ 2
Даже если вы сняли флажок "Показывать сайты интрасети в представлении совместимости" и имеете совместимость с X-UA в заголовках ответов, есть еще одна причина, по которой ваш браузер может по умолчанию использовать "Совместимость" - ваша группа Политика. Посмотрите на консоль для следующего сообщения:
HTML1203: xxx.xxx настроен для запуска в представлении совместимости с помощью групповой политики.
Где xxx.xxx - это домен для вашего сайта (т.е. test.com). Если вы видите это, тогда групповая политика для вашего домена будет настроена так, чтобы любой сайт, заканчивающийся на test.com, автоматически отображался в режиме совместимости независимо от типа doctype, заголовков и т.д.
Для получения дополнительной информации см. следующую ссылку (объясняет html-коды): http://msdn.microsoft.com/en-us/library/ie/hh180764(v=vs.85).aspx
Ответ 3
Я не эксперт, но проб и ошибок:
<meta http-equiv="X-UA-Compatible" content="IE=8, IE=9, IE=edge"/>
решил проблему для меня. Я использовал это на веб-сайтах и webapps, и он остановил работу IE8 от режима совместимости и отобразился как "стандартный" в IE10 и IE11.
Ответ 4
В чем смысл использования ключевого слова Edge
? Я имею в виду, если вы хотите, чтобы IE использовал самый последний механизм рендеринга, просто отбросьте весь метатег.
В противном случае он должен выглядеть примерно так (что бы заставить IE8 вести себя как IE7, а IE9 и новее будут работать как обычно):
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7, IE=Edge" />