Объектная модель документа. Интерфейсы DOM2Core



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

Прежде всего, следует понимать, что вложенные элементы HTML или XML-документов представлены в виде дерева объектов DOM. Древовидное представление HTML-документа содержит узлы, представляющие элементы или теги, такие как <body> и <p>, и узлы, представляющие строки текста. HTML-документ также может содержать узлы, представляющие HTML-комментарии. Рассмотрим следующий простой HTML-документ

<html>

          <head>

                          <title>Примердокумента</title>

          </head>

          <body>

                          <h1>Это HTML-документ</h1>

                          <p>Пример <i>простого</i>текста.</p>

          </body>

</html>

DOM-представление этого документа приводится на следующей диаграмме:

Тем, кто еще не знаком с древовидными структурами в компьютерном программировании, полезно узнать, что терминология для их описания была заимствована у генеалогических деревьев. Узел, расположенный непосредственно над данным узлом, называется родительским по отношению к данному узлу. Узлы, расположенные на один уровень ниже другого узла, являются дочерними по отношению к данному узлу. Узлы, находящиеся на том же уровне и имеющие того же родителя, называются сестринскими. Узлы, расположенные на любое число уровней ниже другого узла, являются его потомками. Родительские, прародительские и любые другие узлы, расположенные выше данного узла, являются его предками.

Каждый прямоугольник на этой диаграмме является узлом документа, который представлен объектом Node. Обратите внимание, что на рисунке изображено три различных типа узлов. Корнем дерева является узел Document, который представляет документ целиком. Узлы, представляющие HTML-элементы, являются узлами типа Element, а узлы, представляющие текст, - узлами типа Text. Document, Element и Text - это подклассы класса Node. Document и Element являются двумя самыми важными классами в модели DOM.

Тип Node и его подтипы образуют иерархию типов, изображенную на диаграмме ниже. Обратите внимание на формальные отличия между обобщенными типами Document и Element, и типами HTMLDocument и HTMLElement. Тип Document представляет HTML и XML-документ, а класс Element представляет элемент этого документа. Подклассы HTMLDocument и HTMLElement представляют конкретно HTML-документ и его элементы:

На этой диаграмме следует также отметить наличие большого количества подтипов класса HTMLElement, представляющих конкретные типы HTML-элементов. Каждый из них определяет JavaScript-свойства, отражающие HTML-атрибуты конкретного элемента или группы элементов. Некоторые из этих специфических классов определяют дополнительные свойства или методы, которые не являются отражением синтаксиса языка разметки HTML.

 

Основные интерфейсы дом2 предоставляют методы, которые позволяют содержание и структура документа будут манипулировать. Структура документа представлена иерархией узлов разных типов. Разрешенные родительских/дочерних отношений зависят от типа документа (например, HTML или XML, и т. д.).

 

Для кросс-платформенной согласованности определены следующие элементарные типы данных:

 

Строка DOMString

DOMTimeStamp

Сайт W3C также имеет полное определение IDL DOM, которое предоставляет формальные определения каждого интерфейса. Определения в руководстве будет использовать либо java или ecmascript.

 

В любой соответствующей реализации требуются следующие типы объектов:

 

DOMException

DOMImplementation

NamedNodeMap

Узел, для которого существуют следующие типы узлов:

Достопри

Для characterdata, которая является расширением узел, а не типа, для которых существуют следующих типов узлов:

Комментарий

Текст

Документ

DocumentFragment

Элемент

нодлист


Дата добавления: 2018-02-28; просмотров: 428; Мы поможем в написании вашей работы!






Мы поможем в написании ваших работ!