Разница заключается в строке пользовательского агента.
«IE7» эмулирует строку пользовательского агента IE7 точно, показывая MSIE 7.0. «IE8» использует строгую строку пользовательского агента IE8 точно, показывая MSIE 8.0, а также Trident/4.0, которая является версией механизма компоновки Trident, используемого в IE8.
IE8-Compatibility использует собственную строку пользовательского агента браузера, но изменяется с «8,0» на «7,0».
Поскольку у Trident не было номера версии до IE7, в строке IE7 не отображается «Trident/x.x». Таким образом, с помощью строки пользовательского агента MSIE 7.0, если присутствует «Trident/4.0», вы знаете, что IE8 работает в режиме совместимости; если «Trident/x.x» НЕ существует, вы знаете, что это либо настоящий IE7, либо IE8 в режиме IE7 (не режим совместимости).
Надеюсь, мои разъяснения достаточно ясны, и вот пример некоторых строк пользовательского агента ниже.
IE7:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; FDM; MS-RTC EA 2; Tablet PC 2.0; .NET4.0C; .NET4.0E)
IE8:
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; FDM; MS-RTC EA 2; Tablet PC 2.0; .NET4.0C; .NET4.0E)
IE8-Совместимость:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; FDM; MS-RTC EA 2; Tablet PC 2.0; .NET4.0C; .NET4.0E)
Что такое использование IE 8 совместимости тогда? Просто, чтобы иметь другую строку USER_AGENT? Кроме того, когда веб-сайт предоставляет страницы пользователям метатег с совместимостью с IE7, то разве ситуация не меняется? (браузер говорит, что это IE 8, но страница визуализируется на клиенте с использованием механизма рендеринга без трезвика). Итак, что же такое использование выбора «IE 8 Compatibility View» в Инструментах разработчика? –
Веб-сайты могут различать IE7 и IE8 в режиме совместимости на основе строки пользовательского агента. Различные режимы позволят вам увидеть любые различия, которые может иметь веб-сайт, когда он отправляется из двух строк. –
Значит, «Режим браузера» управляет только этой строкой, которая отправляется на сервер? Не влияет ли это на то, как создается контент? Где режим документа вступает в игру? – felickz