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

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

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

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

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

Ответ 1

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

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

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

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

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

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

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

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

Ответ 2

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

Свойство 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!

Диаграмма процесса выбора режима документа

Ответ 3

Режим браузера. Указывает агент пользователя, отправленный браузером на веб-сервер. Различия в различиях могут возникать, если ваш 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 и т.д.

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

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

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

Ответ 4

В левом верхнем углу находится небольшая кнопка, в инструментах IE dev → эмуляция (вкладка), в которой говорится: "Сохранять настройки эмуляции"

см. this:

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