Введение в DOM
При описании каскадных таблиц стилей мы уже ввели рассмотрение HTML-документа как дерева элементов. Приведем еще раз пример, иллюстрирующий этот подход.
Пусть наш документ имеет вид:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <HTML> <HEAD> <TITLE>Моя домашняя страница</TITLE> </HEAD> <BODY> <H1>Моя домашняя страница</H1> <P>Добро пожаловать!</P> </BODY> </HTML>
Тогда мы можем представить его в виде следующего дерева:
|
Корнем этого дерева является элемент HTML, который имеет двух детей - HEAD и BODY. Элемент HEAD является отцом элемента TITLE, а элемент BODY - отцом элементов H1 и P (два последних элемента называются братьями, причем H1 является старшим братом, а P - младшим). Все элементы дерева являются потомками корня, а тот является их предком. При этом все элементы и тексты, образующие их содержимое, являются узлами дерева документа.
Каждый элемент данного дерева соответствует элементу HTML и, следовательно, имеет тег(и), содержимое и набор атрибутов. Для перехода к объектной модели документа остается сделать единственный шаг: назвать все элементы дерева объектами, а их атрибуты сделать доступными для чтения и для изменения из сценариев и аплетов. В результате дерево элементов HTML-документа становится динамически управляемым; более того, теперь мы можем легко добавлять к каждому элементу новые свойства, помимо стандартных атрибутов HTML.
Именно такой подход был положен в основу динамической модели HTML обозревателей Microsoft, а затем принят за основу стандартов W3C, получивших название объектная модель документа (Document Object Model или DOM). При этом W3C расширил понятие DOM на любые XML-документы, рассматривая HTML DOM как специализированный частный случай с дополнительными возможностями. Таким образом, DOM - это модель HTML- и XML-документов, независимая от платформы и языка программирования, которая определяет:
интерфейсы и объекты, которые используются для представления документа и манипулирования им;
семантику этих интерфейсов и объектов, включая их атрибуты и реакцию на события;
взаимосвязи между этими интерфейсами и объектами.
На сегодняшний день W3C стандартизовал DOM первого и второго уровней (DOM 1 и DOM 2); в стадии рабочего проекта находится DOM 3. Эти аббревиатуры соответственно обозначают следующее:
DOM 1 описывает базовое представление XML- и HTML-документов в виде деревьев объектов;
DOM 2 расширяет базовые интерфейсы DOM 1 и добавляет к ним поддержку событий и стилей;
DOM 3 описывает загрузку и синтаксический анализом документов, а также их отображение и форматирование.
Учитывая текущее состояние вещей, мы рассматриваем здесь только DOM 2 (и содержащуюся в нем DOM 1). DOM 2 состоит из следующих групп взаимосвязанных интерфейсов:
Core - базовые интерфейсы, определяющие представление любого XML-документа в виде дерева;
View - интерфейсы, описывающие возможные отображения документа;
Event - интерфейсы, определяющие порядок генерации и обработки событий;
Style - интерфейсы, определяющие применение к документам таблиц стилей;
Traversal & Range - интерфейсы, определяющие прохождение дерева документа и манипулирование областями его содержимого;
HTML - интерфейсы, определяющие представление HTML-документа в виде дерева.
Начнем с определения базовых интерфейсов, лежащих в основе всех дальнейших спецификаций.
1 2 3 4
8 8 8
| |