Объектная модель документа (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).