Режим браузера IE8 против режима документа - PullRequest
72 голосов
/ 01 июня 2010

Может кто-нибудь объяснить простоту использования IE8 режим браузера и режим документа ?

  • Что вызывает изменение режима браузера?
  • Что вызывает изменение режима документа?

  • Если пользователь изменяет режим (ы) с помощью инструментов разработчика, сохраняется ли это изменение даже при обновлении страницы?

Я спрашиваю об этом, потому что мы проводим здесь некоторое тестирование IE8, и разные люди имеют разные комбинации режимов, и я хочу попытаться выяснить, как это происходит.

Ответы [ 4 ]

69 голосов
/ 01 июня 2010

Из этой статьи в блоге IE8, озаглавленной Как IE8 определяет режим документа

  1. Настройки инструментов разработчика переопределяют все режимы документов для страниц, отображаемых на вкладке.
  2. Метатег X-UA-Compatible, а затем заголовок переопределяют параметры представления совместимости и тип документа, если значение X-UA-Compatible не равно EmulateIE7 или EmulateIE8.
  3. Параметры представления совместимости пользователя имеют приоритет над списком представлений совместимости Microsoft.
  4. Если ни одно из вышеперечисленных правил не применимо, тип документа определяет, будет ли веб-страница отображаться в стандартах IE8, IE8 Почти в стандартах или в режиме Quirks.

Итак, мы получаем следующие ответы на ваши вопросы:

Q. В чем разница между режимом браузера и режимом документа в простых терминах?
A. Режим обозревателя установлен в инструментах разработчика для имитации различных вариантов поведения версий обозревателя IE, в то время как режим веб-страниц определен на веб-странице, чтобы указать IE по-разному отображать сайт в целях совместимости.

Q. Что вызывает изменение режима браузера?
A. Пользователь меняет режим браузера в инструментах разработчика.

Q. Что вызывает изменение режима документа?
A. Набор мета-тегов и заголовков Doctype и X-UA-Compatible, устанавливаемых веб-разработчиком.

Q. Если пользователь изменяет режим (ы) с помощью инструментов разработчика, остаются ли эти изменения даже при обновлении страницы?
A. Режим браузера останется, но если вы измените Doctype и X-UA-Compatible, они вернутся к тому, что определено на странице.

ОБНОВЛЕНИЕ: Как указывает Adrien Be ниже, IE9 + добавляет возможность изменять режим документа в инструментах разработчика с помощью параметра, который будет сохраняться при обновлении.

16 голосов
/ 07 января 2013

См. Ваш ответ на этой странице .

Свойство documentMode возвращает режим, используемый браузером для визуализации текущего документа.

IE8 может отображать страницу в разных режимах, в зависимости от !DOCTYPE или наличия определенных элементов HTML.

Это свойство возвращает одно из следующих значений:

5 - The page is displayed in IE5 mode
7 - The page is displayed in IE7 mode
8 - The page is displayed in IE8 mode
9 - The page is displayed in IE9 mode

Примечание: Если не указано !DOCTYPE, IE8 отображает страницу в режиме IE5!

Diagram of the document mode selection process

2 голосов
/ 26 августа 2014

Режим браузера : Указывает пользовательский агент , отправляемый браузером на веб-сервер. Различия в рендеринге могут возникать, если ваш JavaScript или внутренний код рендерится по-разному в зависимости от строки пользовательского агента. Например, вы можете увидеть JavaScript, который проверяет navigator.userAgent. (Mozilla / 5.0 (совместимо; MSIE 8.0 ...). Это значение также используется для обработки условных комментариев ([if lte IE 9], [if gt IE 8] и т. Д.). Эмуляция инструментальные средства в IE 11 не имеют режима браузера, вместо этого в них есть раскрывающийся список пользовательских агентов.

Режим документа : Указывает механизм рендеринга, используемый для обработки разметки. Это обычно, где мы видим проблемы рендеринга и несовместимости браузера. Первоначальная цель (к лучшему или к худшему) состояла в том, чтобы владельцы веб-сайтов могли выбирать режим документа для своего сайта через метатег. В IE 11 инструменты эмуляции менее запутаны.

Тестирование : Если ваша цель - эмулировать старый браузер IE8, вы должны изменить и режим браузера и режим документа. Эмуляция не идеальна, поэтому более тщательным вариантом является загрузка бесплатных тестовых виртуальных машин от Microsoft , где вы можете протестировать с * реальной "версией IE 8, 9 и т. Д.

Что вызывает изменение этих значений?

Режим браузера не изменится. (Если вы не измените его в инструментах разработки.) Он устанавливается перед отправкой запроса на веб-сервер.

Режим документа может меняться в зависимости от ответа веб-сервера. Его можно изменить с помощью заголовка ответа HTTP, совместимого с X-UA, типа документа, метатегов, сайтов интрасети, проблем с разметкой и т. Д.

0 голосов
/ 30 января 2016

В левом верхнем углу есть небольшая кнопка, в инструментах разработки IE -> эмуляция (вкладка), которая говорит: «Сохранять настройки эмуляции»

см. это :

" Настройки сохранения и сброса Значок настроек эмуляции Persist добавлен в инструмент эмуляции. Это сохранит ваши текущие настройки эмуляции, пока они не будут специально отключены, что позволит вам работать, закрывать браузер и возвращаться с сохраненными настройками эмуляции. Справа находится значок «Сброс настроек эмуляции», который быстро возвращает инструмент к значениям по умолчанию."

...