Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы веб.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
353 Кб
Скачать

19. Объект Document

Объект Document особенно важен при разработке сценариев.

Свойства объекта Document

Начнем со скалярных свойств, общих для всех браузеров. Большинство их доступны как для чтения, так и для изменения. Отметим, что значения свойств, связанных с цветами текста, фона и гиперссылок, можно изменять динамически лишь в тех случаях, когда не заданы соответствующие описания CSS, которые имеют больший приоритет. Все значения свойств - строковые.

title - текст заголовка документа (содержимое элемента title);

fgColor и bgColor - цвет текста и цвет фона документа;

linkColor, vLinkColor, aLinkColor - цвета непосещенных, посещенных и активных гиперссылок;

lastModified (только для чтения) - дата изменения документа;

referrer (только для чтения) - URL документа, ссылка в котором привела к загрузке текущего документа;

URL (и устаревшее location) - URL документа.

Более интересны и полезны для разработчика свойства-массивы объекта Document. Все они, естественно, имеют свойство length (количество элементов в массиве). Большинство свойств, специфичных для объектов, хранящихся в этих массивах, ассоциируются с атрибутами соответствующих элементов HTML. Вот лишь некоторые из них, понятные без объяснений любому, кто знает HTML:

объект Form имеет свойства name, action, method;

объект Anchor имеет единственное свойство name;

объект Link имеет свойства href, target;

объект Image имеет свойства src, width, height.

К объектам документа, хранящимся в массивах images, forms и applets, а также к элементам форм можно обращаться и по имени, если в начальном теге соответствующего элемента HTML задан атрибу name. Пусть, например, в документе описано изображение

<img src="images/cat.jpg" id="cat_id" name="cat_name">

и оно является n-ым изображением, встречающимся в документе. К этому элементу img можно обратиться по крайней мере следующими способами

Как к элементу массива images , используя его индекс (индексация начинается с 0):

window.document.images[n-1]

Как к элементу массива images , используя значение атрибута name как ключ массива:

window.document.images['cat_name']

Используя значение атрибута name как свойство объекта :

window.document.cat_name

Используя значение атрибута id и свойство getElementById:

window.document.getElementById('cat_id')

Методы объекта Document

open() - открывает новый документ; при этом для текущего документа все его содержимое удаляется.

close() - закрывает ранее открытый документ, фиксируя внесенные изменения.

clear() - очищает содержимое документа.

write() - записывает в документ заданную в качестве аргумента строку.

writeln() - аналогичен предыдущему, но выведенная в документ строка заканчивается символом перевода строки.

Методы write() и writeln() весьма полезны и часто используются для динамического формирования содержимого документа. Вот как, например, можно включить в документ дату его последнего изменения:

<script type="text/JavaScript"> window.document.write(document.lastModified); </script>

Обратите внимание на то, что метод write() для текущего документа может применяться только в сценарии, формирующем документ на стадии его загрузки (то есть он может присутствовать в элементах script, включенных в тело документа body). Любые попытки выполнить этот метод для текущего документа в обработчике некоторого события приведет к очистке содержимого документа. А вот в случае реализации фреймовой структуры или наличия в документе встроенных фреймов iframe, этот метод можно применить и в обработчике события для модификации содержимого документов дочерних фреймов. При этом метод write() добавляет контент в указанный фрейм, не обнуляя его содержимое. При этом к фрейму следует обращаться по данному ему имени.

Например, если в текущем документе определен некий встроенный фрейм с именем "child":

<iframe src="empty.htm" name="child"></iframe>

в него можно добавить новый контент, задав в обработчике некоторого события инструкцию:

child.document.write('... текст с соответствующими тегами ...')