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