Почему IE8 находится в режиме IE7.Переменная "IE" == 7 - PullRequest
3 голосов
/ 13 октября 2011

У меня есть заголовок на моей HTML-странице, как показано ниже, и я открываю этот сайт в IE8.Когда я смотрю на это в «Веб-разработчике», «если IE 7» активен.WebBrowser устанавливает BrowserMode на «IE8 Compact VIew» и «Режим документа» на «IE7 стандарты».У меня есть javascript на сайте, который плохо работает с этими настройками.Почему это происходит?Почему переменная IE равна 7?Почему браузер находится в этом режиме?

<!doctype html>
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7 ]> <html lang="de" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]>    <html lang="de" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]>    <html lang="de" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]>    <html lang="de" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--><html lang="de" class="no-js"> <!--<![endif]-->

Ответы [ 3 ]

8 голосов
/ 13 октября 2011

Другие рекомендовали использовать X-UA-Compatible IE=8, но учтите, что это заставит IE работать в режиме IE8, даже если у пользователя есть IE9 (или более поздняя версия). Как правило, это не то, что вы хотите.

Лучше указать, что IE должен использовать самый последний движок рендеринга, доступный для него. Для этого вы используете тот же тег meta, но в качестве значения используете IE=edge вместо IE=8.

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


Обратите внимание, что IE имеет панель конфигурации, которая позволяет вам указать, когда он будет использовать режим совместимости. По какой-то причине по умолчанию для этого используется режим совместимости для «сайтов в локальной интрасети».

Это наиболее распространенная причина неожиданного перехода IE в режим совместимости при разработке сайта, поскольку ваш сервер localhost будет рассматриваться как находящийся "в локальной интрасети".

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

2 голосов
/ 13 октября 2011

Этот пост в блоге MSDN объясняет, как можно включить режим совместимости. Есть хорошая блок-схема: http://blogs.msdn.com/b/ie/archive/2010/03/02/how-ie8-determines-document-mode.aspx

Чтобы исправить это, вы также можете отправить следующий HTTP-заголовок, используя файл .htaccess или любой другой файл, подходящий для вашего веб-сервера:

X-UA-Compatible: IE=8

Вот ссылка на X-UA-совместимый: http://msdn.microsoft.com/en-us/library/cc288325%28VS.85%29.aspx

0 голосов
/ 13 октября 2011

Вы должны сообщить IE, что страница работает с ним

Попробуйте добавить:

<!--Display in Native ie9 standards mode-->
<meta http-equiv="X-UA-Compatible" content="IE=9" >
<!--Display in Native ie8 standards mode-->
<meta http-equiv="X-UA-Compatible" content="IE=8" >
<!--Display in Native ie7 standards mode-->
<meta http-equiv="X-UA-Compatible" content="IE=7" >
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...