Режим браузера IE8 против режима документа

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

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

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

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

4 ответов


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

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

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

вопрос: в чем разница между режимом браузера и режимом документа в простых терминах?
А. режим браузера установлен в инструментах разработчика для эмуляции различных IE поведение версии браузера во время режима документа определяется на веб-странице, чтобы сообщить IE для отображения сайта по-разному в целях совместимости.

вопрос: что вызывает изменение режима браузера?
А. пользователь изменяет режим браузера в инструментах разработки.

вопрос: что вызывает изменение режима документа?
А. Doctype и X-UA-совместимый мета-тег и набор заголовков веб-разработчика.

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

обновление: как указывает Адриен ниже, IE9 + добавляет возможность изменения режима документа в инструментах разработки с помощью настройки, которая сохранится при обновлении.


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

на 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


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

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

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

что заставляет эти значения меняться?

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

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


есть маленькая кнопка в левом верхнем углу, в IE dev tools - > emulation (tab), которая говорит "сохранить настройки эмуляции"

посмотреть этой :

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