Объектная модель документа (DOM)

Объектная модель документа (Document Object Model – DOM) связывает в единое целое HTML, язык сценариев и каскадные таблицы стилей, предоставляя разра­ботчикам Web-документов инструмент с совершенно новыми качествами – динамический HTML.

По своей сути DOM является интерфейсом прикладного программирования (Application Programming Interface – API) для документов HTML. Она определяет логическую структуру доку­мента и способ доступа и манипулирования составляющими документ элементами. Все, что определено в документе дескрипторами языка разметки страниц, становится доступным для изменения, удаления и добавления. Программист может создавать документы, свободно перемещаться по их структуре и до­бавлять, изменять или удалять элементы и/или их содержимое.

Одной из основных целей разработки рекомендаций консорциумом W3 яв­лялось предоставление независимого от языка и платформы стандартного интерфейса прикладного программирования.

Первая версия DOM (DOM Level 1) была принята консорциумом W3 в октябре 1998 года. Эта версия практически полностью реализована в Internet Explorer 5.0.

При разработке новой, второй, версии спецификации DOM (DOM Level 2 или просто DOM 2) объектная модель документа (объект document на рис. 4.5.1) была разбита на следующие 14 модулей, которые могут реализовываться независимо производителями Web-браузеров:

· модуль ядра (DOM Level 2 Core Specification);

· модуль HTML (DOM Level 2 HTML Specification);

· модуль XML (DOM Level 2 XML Specification);

· пять модулей обработки событий (DOM Level 2 Events Specification);

· модуль таблиц стилей и два модуля стилей (DOM Level 2 Style Specification);

· модуль представления (DOM Level 2 Views Specification);

· модуль диапазона и модуль перечисления (DOM Level 2 Traversal and Range Specification).

В ноябре 2000 года консорциум W3 утвердил спецификации всех модулей DOM Level 2 (Version 1.0).

В настоящее время консорциумом W3 ведется разработка третьей версии спецификации DOM (DOM Level 3 или просто DOM 3). В апреле 2004 была принята спецификация ядра для DOM 3 (DOM Level 3 Core Specification), разработка остальных модулей продолжается. Однако, некоторые свойства и методы, определенные в DOM 3, уже используются в Web-браузерах.

Объектная модель документа предоставляет программисту следующие возможности при работе с иерархической структурой объектов документа:

· перемещение части структуры документа в другое место, не разрушая и не создавая ее заново.

· создание новых элементов и присоединение их к структуре документа в любом ее месте.

· организация и манипулирование новыми или существующими ветвями структуры фрагмента документа до помещения объектов в структурное дерево документа.

В настоящее время многие раз­работчики редакторов и Web-браузеров применяют рекомен­дации консорциума W3 по объектной модели документа в своих продуктах. Однако в полном объеме модель DOM 2 пока не реализована ни в одном из распространенных Web-браузеров.

Ниже рассматриваются средства ядра DOM, DOM HTML, событий и стилей DOM, которые поддерживаются в основных Web-браузерах (Internet Explorer, Firefox, Opera и Netscape).