Книга: JavaScript. Подробное руководство, 6-е издание

13.4.4. Режим совместимости и стандартный режим

13.4.4. Режим совместимости и стандартный режим

Когда корпорация Microsoft выпустила броузер IE6, в него была добавлена поддержка некоторых стандартных особенностей CSS, которые не поддерживались в IE5. Однако чтобы обеспечить обратную совместимость с существующими вебстраницами, в нем было реализовано два режима отображения. В «стандартном режиме», или в «режиме совместимости с CSS», броузер следует стандартам CSS. В «режиме совместимости» броузер проявляет нестандартное поведение, свойственное версиям IE4 и IE5. Выбор режима отображения зависит от объявления D0CTYPE в начале HTML-файла. Страницы, вообще не имеющие объявления D0CTYPE и страницы с определенными объявлениями типа документа, типичными в эру использования IE5, отображаются в режиме совместимости. Страницы со строгими объявлениями типа документа (или, для совместимости снизу вверх, с нераспознаваемыми объявлениями типа документа) отображаются в стандартном режиме. Страницы с объявлением, определяемым стандартом HTML5 (<! D0CTYPE html>), отображаются в стандартном режиме во всех современных броузерах.

Такое различие между режимом совместимости и стандартным режимом прошло проверку временем. Новые версии IE по-прежнему реализуют его, как и другие современные броузеры, и существование этих двух режимов было узаконено спецификацией HTML5. Различия между режимом совместимости и стандартным режимом обычно имеют значение только для тех, кто пишет HTML- и CSS-код. Однако иногда клиентским сценариям на языке JavaScript бывает необходимо определить, в каком режиме отображается документ. Определить режим отображения можно с помощью свойства document.compatMode. Если оно имеет значение «CSSICompat», документ отображается в стандартном режиме. Если оно имеет значение «BackCompat» (или undefined, если такое свойство вообще не существует), документ отображается в режиме совместимости. Все современные броузеры реализуют свойство compatMode, и оно стандартизовано спецификацией HTML5.

На практике необходимость проверять свойство compatMode возникает редко. Тем не менее в примере 15.8 демонстрируется один из случаев, когда эта проверка действительно необходима.

Оглавление книги


Генерация: 1.456. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз