Dom-uslugi66.ru

Бюро Домашних Услуг

Document Object Model

   HTML
Пример иерархии объектов в HTML DOM

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

Модель DOM не накладывает ограничений на структуру документа. Любой документ известной структуры с помощью DOM может быть представлен в виде дерева узлов, каждый узел которого представляет собой элемент, атрибут, текстовый, графический или любой другой объект. Узлы связаны между собой отношениями родительский-дочерний.

Изначально различные браузеры имели собственные модели документов (DOM), не совместимые с остальными. Для того, чтобы обеспечить взаимную и обратную совместимость, специалисты международного консорциума W3C классифицировали эту модель по уровням, для каждого из которых была создана своя спецификация. Все эти спецификации объединены в общую группу, носящую название W3C DOM.

Еще один интерфейс прикладного программирования, называемый JDOM, обеспечивает более высокий, чем W3C DOM, уровень для работы с XML документами на Java — www.jdom.org.

Содержание

Уровни 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 
Состоит из шести различных спецификаций:
  1. DOM Level 3 Core;
  2. DOM Level 3 Load and Save;
  3. DOM Level 3 XPath;
  4. DOM Level 3 Views and Formatting;
  5. DOM Level 3 Requirements;
  6. DOM Level 3 Validation.
Эти спецификации являются дополнительными расширениями DOM.

Реализация DOM в веб-браузерах

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

 
if (document.getElementById && document.getElementsByTagName) {
    // если методы getElementById и getElementsByTagName
    // доступны, то можно относительно точно предположить поддержку W3CDOM.
 
    obj = document.getElementById("navigation")
    // далее идёт другой код с использованием возможностей W3CDOM.
    // .....
}

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

 
  function domImplementationTest(){
    var featureArray = ['HTML', 'XML', 'Core', 'Views',
                        'StyleSheets', 'CSS', 'CSS2', 'Events',
                        'UIEvents', 'MouseEvents', 'HTMLEvents',
                        'MutationEvents', 'Range', 'Traversal'];
    var versionArray = ['1.0', '2.0', '3.0'];
    var i;
    var j;
    if(document.implementation && document.implementation.hasFeature){
      for(i=0; i < featureArray.length; i++){
        for(j=0; j < versionArray.length; j++){
          document.write(
            'Поддержка расширения '+ featureArray[i] + ' версии ' + versionArray[j] + ' : ' + 
            (document.implementation.hasFeature(featureArray[i], versionArray[j]) ? 
            '<font style="color:green">true</font>' : '<font style="color:red">false</font>') + '<br/>'
          );
        }
        document.write('<br/>');
      }
    }
  }

Проблемы

Из-за несовместимости браузеров использование DOM иногда приводит к трудностям HTML-верстки и низкой надёжности страниц.

Спецификации

  • Спецификация DOM Level 1
  • Рекомендации W3C к Уровню 2:
    • Спецификация DOM Level 2 Core
    • Спецификация DOM Level 2 Views
    • Спецификация DOM Level 2 Events
    • Спецификация DOM Level 2 Style
    • Спецификация DOM Level 2 Traversal and Range
    • Спецификация DOM Level 2 HTML
  • Рекомендации W3C к Уровню 3:
    • Спецификация DOM Level 3 Core
    • Спецификация DOM Level 3 Load and Save
    • Спецификация DOM Level 3 Validation
  • Документы рабочей группы W3C к Уровню 3:
    • Спецификация DOM Level 3 XPath
    • Спецификация DOM Level 3 Views and Formatting
    • Требования к DOM

Ссылки

  • Раздел DOM на сайте Консорциума Всемирной паутины (W3C)  (англ.)
  • Доклады по DOM (англ.)
  • Учебники по DOM (англ.)
  • Какой уровень DOM поддерживает ваш браузер? (англ.)
  • Что включает в себя каждый уровень DOM? (англ.)
  • Скрипты W3C DOM и таблицы совместимости (англ.)
  • Ссылка на Gecko DOM (англ.)
  • Документация по khtml Library API (англ.)

Document Object Model.

© 2023 dom-uslugi66.ru, Россия, Ангарск, ул. Набережная 59, +7 (3951) 35-50-52