Разница заключается в строке агента пользователя.
"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 / xx».Итак, со строкой пользовательского агента MSIE 7.0, если также присутствует «Trident / 4.0», вы знаете, что IE8 работает в режиме совместимости;если «Trident / xx» НЕ существует, вы знаете, что это настоящий 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)