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

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

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

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

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

4 ответа

Решение

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

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

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

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

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

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

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

ОБНОВЛЕНИЕ: Как указывает Adrien Be ниже, 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!

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

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

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

увидеть это:

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

Другие вопросы по тегам