JavaScript. Основы клиентского программирования. Захаркина В.В. - 15 стр.

UptoLike

Составители: 

28
естественно, поддерживает) объекты модели DOM0, но предлагает
определенную концепцию представления элементов HTML-
документа. Акцент модели DOM2 - иерархическая структура
документа, в которой каждый элемент является объектом (с точки
зрения алгоритмического языка) со своими свойствами, методами и
событиями.
Модель DOM2 отображает реальную иерархическую структуру
документа. Действительно, в документе HTML есть разделы head и
body, в каждом из которых
своя иерархия элементов. В разделе
head особой иерархии нет, там последовательно указывается набор
элементов, непосредственно не отображаемых в окне браузера. Они
могут влиять на общее отображение и функциональность документа
(определение внешних таблиц CSS, коды JavaScript), на
идентификацию документа (многие meta-элементы), задавать HTTP-
заголовки. Зато раздел body имеет явную иерархическую структуру.
Рассмотрим, например, очень
простое описание HTML-документа:
<html>
<head>
<title>Пример</title>
</head>
<body>
<h1>Пример простого документа</h1>
<p>
Начало абзаца
<strong>выделенный текст</strong>
продолжение абзаца
<img src="test.jpg">
</p>
</body>
</html>
Этот документ может быть представлен деревом, состоящим из
следующих узлов:
29
Примерно такую иерархическую модель документа и предлагает
стандарт DOM2. Отдельного рассмотрения этого интерфейса
прикладного программирования в данном разделе нет. Однако
отметим, что именно обращение к ряду свойств и методов,
представленных в DOM API, позволяет сценариям JavaScript
обеспечивать необходимую функциональность в типичных
актуальных задачах (тем более, в нетривиальных).
Определение возможностей
клиентского JavaScript
Очевидно, что браузеры разных версий и разных производителей
отличаются степенью поддержки базовой версии JavaScript и
возможностей DOM. Свойство window.navigator.userAgent
позволяет определить параметры браузера и организовать адекватную
настройку сценария.
Однако, в большинстве случаев нас интересует более узкий и
конкретный вопрос: реализована ли в данном браузере нужная нам
возможность. Приведу два примера: из недавнего прошлого
и
актуальный сегодня.