Если я заставлю инструменты разработчика IE 8 быть "Режим браузера: IE 8" и "Режим документа: стандарты IE 7", то теперь это IE 7 или IE 8?

Если я обслуживаю страницу, используя

<meta content='IE=EmulateIE7' http-equiv='X-UA-Compatible'>

используя HTML 4.01 строго, и загрузите эту страницу в IE 8, затем Инструменты разработчика IE 8 показывают, что он использует:

Browser Mode: IE 8     Document Mode: IE 7 Standards

Хорошо, тогда IE 8 использует частично движок IE 8 и частично движок IE 7? Какая часть является IE 8, а какая часть IE 7?

HTTP_USER_AGENT отображается как:

Mozilla / 4.0 (совместимо; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

так что я представляю, что это не "полностью" IE 7.

1 ответ

Решение

Из-за метатега, указывающего IE8 эмулировать IE7, механизм компоновки (компонент браузера, используемый для отображения страниц) изменен, чтобы имитировать работу IE7. Ergo, Document Mode отображается как режим стандартов IE7.

Поскольку IE8 использует метатег для определения способа отображения страницы, я предполагаю, что IE8 не настроен на использование представления совместимости для него. При этом режим браузера отображается как IE8, а отправляемая им строка user-agent - тоже IE8.

Итак, резюмируем: остальная часть браузера все еще IE8; только механизм верстки действует как IE7.