Document Object Model
DOM (от англ. Document Object Model — «объектная модель документа») — это независящий от платформы и языка программный интерфейс, позволяющий программам и скриптам получить доступ к содержимому документов, а также изменять содержимое, структуру и оформление документов.
Модель DOM не накладывает ограничений на структуру документа. Любой документ известной структуры с помощью DOM может быть представлен в виде дерева узлов, каждый узел которого представляет собой элемент, атрибут, текстовый, графический или любой другой объект. Узлы связаны между собой отношениями родительский-дочерний.
Изначально различные браузеры имели собственные модели документов (DOM), не совместимые с остальными. Для того, чтобы обеспечить взаимную и обратную совместимость, специалисты международного консорциума W3C классифицировали эту модель по уровням, для каждого из которых была создана своя спецификация. Все эти спецификации объединены в общую группу, носящую название W3C DOM.
Уровни 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
- Состоит из шести различных спецификаций:
- DOM Level 3 Core;
- DOM Level 3 Load and Save;
- DOM Level 3 XPath;
- DOM Level 3 Views and Formatting;
- DOM Level 3 Requirements;
- 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]) + '<br>'
);
}
document.write('<br>');
}
}
}
Проблемы
Из-за несовместимости браузеров использование DOM иногда приводит к трудностям HTML-верстки и низкой надёжности страниц.
Спецификации
- Спецификация DOM Level 1
- Рекомендации W3C к Уровню 2:
- Рекомендации W3C к Уровню 3:
- Документы рабочей группы W3C к Уровню 3:
Ссылки
- Школа консорциума W3C (семейство XML) (рус.)
- Раздел DOM на сайте Консорциума Всемирной паутины (W3C) (англ.)
- Доклады по DOM(англ.)
- Учебники по DOM(англ.)
- Какой уровень DOM поддерживает ваш браузер?(англ.)
- Что включает в себя каждый уровень DOM?(англ.)
- Раздел W3C DOM на сайте Microsoft (MSDN)(англ.)
- Скрипты W3C DOM и таблицы совместимости(англ.)
- Ссылка на Gecko DOM(англ.)
- Документация по khtml Library API(англ.)
- Быстрое знакомство с DOM
Стандарты Консорциума Всемирной паутины |
|
---|---|
Рекомендации | CDF • CGI • CSS • DOM • HTML • LOGML • MathML • OWL • RDF • RDF Schema • SISR • SMIL • SOAP • SRGS • SSML • SVG • Timed Text • VoiceXML • WSDL • XForms • XHTML • XInclude • XML • XML Base • XML Events • XML Information Set • XML Schema • XPath • XPointer • XQuery • XSL • XSL-FO • XSLT • XLink |
Примечания | XHTML+SMIL |
Рабочие проекты | CCXML • CURIE • InkML • XFrames • XFDL • WICD • XHTML+MathML+SVG |
См. также | WHATWG |
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....