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
- Состоит из шести различных спецификаций:
- DOM Level 3 Core;
- DOM Level 3 Load and Save;
- DOM Level 3 XPath;
- DOM Level 3 Views and Formatting;
- Level 3 Requirements; и
- 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 браузерами разработка веб-приложений с её использованием затруднено.
Спецификации[править | править код]
- Спецификация DOM Level 1
- Рекомендации W3C к Уровню 2:
- Рекомендации W3C к Уровню 3:
- Документы рабочей группы W3C к Уровню 3:
Ссылки[править | править код]
- Раздел DOM на сайте Консорциума Всемирной паутины (W3C) (англ.)
- Доклады по DOM(англ.)
- Учебники по DOM(англ.)
- Какой уровень DOM поддерживает ваш браузер?(англ.)
- Что включает в себя каждый уровень DOM?(англ.)
- Раздел W3C DOM на сайте Microsoft (MSDN)(англ.)
- Скрипты W3C DOM и таблицы совместимости(англ.)
- Ссылка на Gecko DOM(англ.)
- Документация по khtml Library API(англ.)
- Быстрое знакомство с DOM