Нужна помощь, чтобы понять, что такое объектная модель документа? - PullRequest
2 голосов
/ 06 августа 2011

Я новичок в JavaScript и у меня есть Googled DOM, и я нашел много сайтов, заявляющих, что это интерфейс / API по отношению к документу XML / HTML.Однако я не понимаю, что такое DOM.Это название API?Это спецификация, которой должны следовать браузеры?Может кто-нибудь объяснить это?

Кроме того, я использую DOM API напрямую при написании document.get... или это тот JavaScript, который оборачивает вызов DOM API?

Если бы кто-нибудь мог объяснить, как работают DOM и JavaScript, и что это такое, я был бы очень признателен за вашу помощь!

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

http://www.brainjar.com/dhtml/intro/

Ответы [ 6 ]

0 голосов
/ 08 мая 2014

Помимо других ответов, я хотел бы добавить:
Цитата w3.org / DOM / :

Объектная модель документа не зависит от платформы и языка интерфейс, который позволит программам и сценариям динамически получать доступ и обновить содержание, структуру и стиль документов. «Динамический HTML "- это термин, используемый некоторыми поставщиками для описания комбинации HTML, таблицы стилей и скрипты, позволяющие анимировать документы. W3C получил несколько предложений от компаний-членов о способ, которым объектная модель документов HTML должна быть представлена скрипты. Эти материалы не предлагают какие-либо новые теги HTML или стиль листовая технология. W3C DOM Activity работает над тем, чтобы совместимые и нейтральные решения на языке сценариев согласованы на.

По сути, я смотрю на это так:
В браузерах вы можете использовать скрипты, которые обычно являются диалектом EcmaScript (и IE поддерживает VBScript для). Эти сценарии выполняются на хосте сценариев (будь то механизм экмаскрипта браузера или автономный механизм, такой как node.js, wscript / csript, jsdb , javascript-exe и т. Д.) .

Поскольку ecmascript основан на объектах , базовый язык наследует / обращается к объектам, свойствам и методам от его (родительского) хоста (точно так же, как вы можете добавить свой собственный md5- подпрограмма как дополнительная функция / объект / метод для взаимодействия).

Таким образом, DOM, по сути, является стандартом, в котором объекты / свойства / методы, которые необходимы для взаимодействия с элементами в документе, а также из браузера (для отслеживания в браузере и т. Д.), Регулируются и в каком иерархическом порядке.

Таким образом, каждый может использовать метод, равномерно называемый getElementById, который доступен в document (который предоставляется window, так же как wscript предоставляет echo вместо alert, как в браузере window обычно позволяет открыть новое диалоговое окно с кнопкой OK и сообщением, которое вы предоставляете) и т. Д.

Вы даже можете сравнить его с API. Только этот API предназначен для всех совместимых браузеров всех производителей.

Примечание: я спас этот / мой ответ из этот (теперь удаленный) дубликат , где это был принятый ответ.

0 голосов
/ 16 февраля 2012

См. Введение Брейнджара в объектную модель документа.Это очень хорошо написано и понятно.Хотелось бы, чтобы они пошли на это еще!

0 голосов
/ 06 августа 2011

DOM - это API, который позволяет JavaScript манипулировать HTML

DOM обычно представляется в виде древовидной иерархии, которая позволяет вам манипулировать вашей HTML-страницей.

Javascript реализации DOM позволяют вам манипулировать этим деревом, чтобы иметь возможность добавлять, удалять, изменять HTML DOM программно, позволяя вам сделать ваш HTML интерактивным (добавлять или удалять стили на лету, или даже динамически вставлять HTML в страница с использованием JavaScript).

Mozilla опубликовала спецификацию своего DOM API на своем веб-сайте здесь:

0 голосов
/ 06 августа 2011

DOM - это API, предоставляемый браузерами.Он отделен от ECMAScript и является хорошо определенной спецификацией в стандартах W3C.

API, предоставляемый браузерами, является реализацией DOM.Кто-то может поспорить, находится ли реализация на уровне C ++ и является ли javascript API прокси или нет, но это не интересный аргумент.

Как правило, DOM и BOM, а также различные формы спецификации html5 хост-объекты , которые браузеры предоставляют через свойства window

И хост-объекты - это не что иное, как внутренности, которые браузер предоставляет вам, так что вы можете манипулироватьсостояние браузера, состояние страницы и связь с внешними ресурсами.

0 голосов
/ 06 августа 2011

JavaScript - это просто язык программирования.

Объектная модель документа - это API (по сути, набор классов и функций), который позволяет вам получать доступ и изменять дерево элементов HTML-документа, используя программирование JavaScriptязык, в браузере или вообще в другой среде, возможно, с другим языком.

0 голосов
/ 06 августа 2011

Во-первых, W3C * определяет *1001* спецификацию, которой должны следовать браузеры (то же самое, что HTML или CSS - в большинстве случаев спецификация и фактическая реализация развиваются рядом друг с другом, вместо того, чтобы «сначала черновик, а затем реализовать», что приводит ко многим несоответствиям браузера. Вот почему я люблю использовать библиотеки Javascript, такие как jQuery или ProtopyJS, которые обрабатывают многие из этих несоответствий для меня.).

Но в большинстве случаев DOM ссылается на фактическое использование в javascript: вместо синтаксического анализа HTML-тегов JavaScript может получить доступ к проанализированным узлам браузера и напрямую манипулировать ими (document.getElementById, Node.appendChild и т. Д.).

(РЕДАКТИРОВАТЬ: Нашел интересную статью о quirksmode об этом.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...