DOM

Материал из свободной русской энциклопедии «Традиция»
Перейти к навигации Перейти к поиску

DOM (от англ. Document Object Model — «объектная модель документов») — это платформенно-независимый программный интерфейс, позволяющий программам и скриптам управлять содержимым документов HTML и XML, а также изменять их структуру и оформление.

Модель DOM не накладывает ограничений на структуру документа. Любой документ известной структуры с помощью DOM может быть представлен в виде дерева узлов, каждый узел которого содержит элемент, атрибут, текстовый, графический или любой другой объект. Узлы связаны между собой отношениями родитель-потомок.

Изначально различные браузеры имели собственную модель DOM, не совместимую с остальными. Для того, чтобы обеспечить взаимную и обратную совместимость, специалисты международного консорциума W3C классифицировали эту модель по уровням, для каждого из которых была создана своя спецификация. Все эти спецификации объединены в общую группу, носящую название W3C DOM.

Уровни W3C DOM[править | править код]

Текущим уровнем спецификаций DOM является Уровень 2, но тем не менее некоторые части спецификаций Уровня 3 являются рекомендуемыми W3C.

Уровень 0
Включает в себя все специфические модели DOM, которые существовали до появления Уровня 1, например document.images, document.forms, document.layers и document.all. Необходимо обратить внимание, что эти модели формально не являются спецификациями DOM, опубликованными W3C, а скорее являются информацией о том, что существовало до начала процесса стандартизации.
Уровень 1
Базовые функциональные возможности DOM (HTML и XML) в документах, такие как получение дерева узлов документа, возможность изменять и добавлять данные.
Уровень 2
Поддержка так называемого пространства имён XML <--filtered views--> и событий.
Уровень 3
Состоит из шести различных спецификаций:
  1. DOM Level 3 Core;
  2. DOM Level 3 Load and Save;
  3. DOM Level 3 XPath;
  4. DOM Level 3 Views and Formatting;
  5. Level 3 Requirements; и
  6. DOM Level 3 Validation.
Эти спецификации являются дополнительными расширениями DOM.

Реализация DOM в Web-браузерах[править | править код]

Учитывая существование различных реализаций DOM в web-браузерах, среди программистов распространена привычка проверять работоспособность тех или иных возможностей DOM для каждого конкретного браузера, и только потом использовать их. Код ниже иллюстрирует способ проверки на поддержку стандартов W3CDOM перед тем как запустить код, зависящий от результата этой проверки.

  if (document.getElementById && document.getElementsByTagName) {
     // если методы getElementById и getElementsByTagName
     // доступны, то можно относительно точно предположить поддержку W3CDOM.

     obj = document.getElementById("navigation")
     // далее идёт другой код с использованием возможностей W3CDOM.
     // .....
  }

Проблематика[править | править код]

Из-за различий в поддержке DOM браузерами разработка веб-приложений с её использованием затруднено.

Спецификации[править | править код]

Ссылки[править | править код]