20444

Document Object Model

Доклад

Информатика, кибернетика и программирование

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

Русский

2013-07-25

54 KB

10 чел.

19 Document Object Model

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-верстки и низкой надёжности страниц.


 

А также другие работы, которые могут Вас заинтересовать

4817. Отчетность коммерческих банков 172 KB
  Отчетность коммерческих банков Сущность и цели подготовки банковской отчетности Система банковской финансовой отчетности Вопрос 1. Сущность и цели подготовки банковской отчетности Банковская отчетность - это единая система количест...
4818. Международный суд и его деятельность 170 KB
  Международный суди его деятельность Международный Суд, согласно пункту 1 статьи 7 Устава ООН, является одним из главных судебных органов Организации Объединенных Наций. Исходя из статьи 92 Устава ООН, Международный Суд является главным судебны...
4819. Система AutoCAD. Курс лекций 2.86 MB
  Команды общего редактирования. Кнопка ERASE Команды стереть – стирает с экрана выбранные объекты и удаляет их из рисунка. Можно использовать ручки. выделить ручками объект или мышью, и нажать на клавишу Delete. Кнопка команды копирова...
4820. Исследование и анализ режимов работы источника постоянной ЭДС 131.5 KB
  Исследование и анализ режимов работы источника постоянной ЭДС Цель работы. Изучение и анализ различных режимов работы источника электродвижущей силы (источника ЭДС) Основы теории. Системы электроизмерительных приборов. Приборы магн...
4821. Геометрия Лобачевского. Геометрия кривых поверхностей 31.5 KB
  Геометрия Лобачевского. Н.И. Лобачевскийв 1826г. впервые построил и развил одну из возможных геометрий, где аксиома (А) не имеет места. Геометрия Лобачевского основывается на тех же аксиомах, что и евклидова геометрия, за исключением аксиомы о парал...
4822. Основные понятия и принципы системы Delphi 454 KB
  Основные понятия и принципы системы Delphi. Цель: Дать студентам общие сведения об объектно-ориентированном языке программирования Delphi. План занятия. Организационный момент. Изучение нового материала. Контрольные вопросы. ...
4823. Основы программирования на языке Turbo Pascal 246 KB
  Основы программирования Цель: Дать студентам основы программирования. Задачи: Воспитательная: повторение уже изученного языка программирования TurboPascal. Учебная: научить правильно применять константы и переменные. Развивающая: развитие вним...
4824. Создание первой программы на языке Turbo Pascal 184 KB
  Создание первой программы. Цель: Показать студентам пример создания программы. Задачи: Воспитательная: повторение уже изученного языка программирования TurboPascal. Учебная: научить создавать программы. Развивающая: развитие внимательности. Пл...
4825. Создание первой программы в языке Turbo Pascal 94.5 KB
  Создание первой программы. Цель: Показать студентам управление программой при помощи меню. Задачи: Воспитательная: повторение уже изученного языка программирования TurboPascal. Учебная: научить создавать программы. Развивающая: развитие внимат...