На этом шаге продробно рассмотрим свойства, методы и события объекта Document.
Этот объект – самый важный в объектной модели. Все элементы HTML-документа являются свойствами
объекта Document и одновременно объектами с точки зрения языка сценариев VBScript. Для
удобства некоторые объекты объединены в наборы (смотри шаг 73 рисунок 1),
которые еще называют коллекциями.
Например, коллекция всех картинок в HTML-документе называется Images, а коллекция всех
ссылок – Links. Чтобы обратиться к объекту из коллекции нужно указать его номер в этой коллекции.
Таким образом, коллекция представляет собой аналог массива, причем нумерация элементов коллекции также
начинается с 0.
На рисунке 1 приведена иерархическая схема объектного представления HTML-документа.
Рис.1. Иерархическая схема объектного представления HTML-документа
Первый объект в этой структуре – Document. Первый элемент HTML-документа – картинка с
именем Image1. Она представляется в виде объекта Images(0). Чтобы получить доступ к этому
элементу страницы, требуется записать:
Document.Images(0)
Доступ к элементу с именем Button обеспечивает такая конструкция:
Document.Forms(0).Elements(2)
Существует другой способ доступа к элементам страницы: с использованием имени элемента. В этом случае
вместо указания названия набора и номера элемента в наборе указывается имя элемента. Первый пример с
учетом сказанного можно записать так:
Document.Image1
А второй – так:
Document.MyForm.Button
Основные наборы (коллекции), свойства, методы и события объекта Document перечислены в
таблицах 1 и 2.
Таблица 1. Основные коллекции объекта Document
Название | Описание |
---|---|
All | Коллекция всех тэгов и элементов в основной части документа. |
Anchors | Коллекция всех закладок (тэгов типа <A NAME=…>) в документе. |
Forms | Коллекция всех форм на странице. |
Frames | Набор всех фреймов, определенных в тэге <FRAMESET>. |
Images | Набор всех графических элементов (картинок) на странице. |
Links | Набор всех гиперссылок на странице. |
Напоминаем, чтобы можно было обратиться к элементу набора по имени, нужно придать ему имя,
воспользовавшись параметром NAME.
Таблица 2. Основные свойства, методы и события объекта Document
ОБЪЕКТ DOCUMENT
Свойства
Методы
События
AlinkColor | Задает цвет активной ссылки. |
LinkColor | Задает цвет непосещенной ссылки. |
VlinkColor | Задает цвет посещенной ссылки. |
BgColor | Определяет цвет фона документа. |
FgColor | Определяет цвет текста документа. |
Title | Содержит заголовок документа. |
LastModified | Дата последнего изменения документа. |
ReadyState | Возвращает состояние загружаемого элемента:
|
Location | Возвращает объект Location с информацией о текущем URL-адресе. |
Referrer | Возвращает URL-адрес предыдущего объекта Location. |
ActiveElement | Возвращает активный элемент (элемент, находящийся в фокусе). Конструкция ActiveElement.Name позволяет получить имя элемента, а ActiveElement.Value – его значение. |
Domain | Имя узла с документом. |
URL | URL-адрес документа. |
Body | Возвращает ссылку на объект BODY. Используя ее можно определить, например, размеры рабочей области (свойства ClientWidth и ClientHeight), размеры содержимого документа (ScrollWidth и ScrollHeight), местоположение полос прокрутки (ScrollLeft и ScrollTop). |
ParentWindow | Возвращает ссылку на объект Window с документом. |
Close | Закончить запись в документ и отобразить его. |
Open | Открытие нового потока для методов Write и WriteLn (формирование новой страницы). |
Write (<строка>) или WriteLn (<строка>) |
Вывод в открытый предыдущим методом поток указанной строки без добавления/с добавлением символа «возврат каретки». На практике HTML не различает этот символ, поэтому результат выполнения этих конструкций один. Кавычки внутри строки заменяются апострофами: WriteLn(“<IMG SRC=’Image1.gif’>”). Метод используется при динамическом формировании Web-страницы. |
OnClick | Наступает при щелчке левой клавиши мыши. |
OnMouseOver | Наступает при перемещении мыши над элементом документа. |
OnDblClick | Наступает при двойном щелчке левой клавиши мыши. |
OnKeyDown | Наступает один раз при нажатии клавиши на клавиатуре, даже если клавиша удерживается. |
OnKeyUp | Наступает при отпускании клавиши на клавиатуре. |
OnKeyPress | Наступает при нажатии и отпускании клавиши на клавиатуре. Если клавиша удерживается, то генерируется серия таких событий. |
OnMouseOut | Наступает при выходе мыши за пределы документа. |
OnMouseMove | Наступает при перемещении курсора мыши. |
OnMouseUp | Наступает при отпускании клавиши мыши. |
OnMouseDown | Наступает при нажатии клавиши мыши. |
Все перечисленные события получают один аргумент: объект, содержащий информацию о событии. Более
подробную информацию по использованию указанных событий мы приведем в шаге 80 "Обработка событий".
А здесь проиллюстрируем использование некоторых из перечисленных свойств и методов.
Пример №1. Воспользуемся свойствами объекта Document, чтобы получить заголовок документа и дату
его последней модификации.
Текст HTML-документа, решающего эту задачу, может выглядеть так:
<HTML> <HEAD> <TITLE>Свойства документов.</TITLE> <SCRIPT LANGUAGE=VBScript> <!-- Sub Button1_OnClick() 'Формирование строки для вывода. X="Дата последней модификации документа: "&Document.LastModified X=X&Chr(13)&Chr(10) X=X&"Заголовок документа: "&Document.Title 'Вывод сформированной строки. Alert X 'Изменение заголовка. Document.Title = "Изменить заголовок" X="Измененный заголовок: "&Document.Title 'Вывод измененного заголовка. Alert X End Sub '--> </SCRIPT> </HEAD> <BODY> <H2 ALIGN=CENTER>Вывод окна со свойствами документа.</H2> Нажмите кнопку для вывода окна со свойствами документа.<BR> <FORM NAME=Form1> <INPUT TYPE="BUTTON" NAME="BUTTON1" Value="Нажмите кнопку!"> </FORM> </BODY> </HTML>
Текст этой программы можно взять
<HTML>
<HEAD>
<TITLE>Изменение цветов.</TITLE>
<SCRIPT LANGUAGE=VBScript>
<!--
Dim A(15)
A(1)="WHITE": A(2)="BLACK" : A(3)="BLUE"
A(4)="RED": A(5)="YELLOW" : A(6)="AQUA"
A(7)="FUSHIA": A(8)="GRAY" : A(9)="LIME"
A(10)="MAROON": A(11)="NAVY" : A(12)="OLIVE"
A(13)="PURPLE": A(14)="SILVER" : A(15)="TEAL"
i = 1 : j = 2
Document.BgColor=A(j):Document.FgColor=A(i)
Sub ButtonFG_OnClick()
If i=15 Then i=0
i = i+1
Document.FgColor=A(i)
End Sub
Sub ButtonBG_OnClick()
If j=15 Then j=0
j = j+1
Document.BgColor=A(j)
End Sub
'-->
</SCRIPT>
</HEAD>
<BODY>
<H2>Изменение цветов текста и фона документа.</H2>
Для выбора следующего цвета и фона документа используйте соответствующую кнопку.<BR>
<FORM NAME=Form1>
<INPUT TYPE=BUTTON NAME=BUTTONBG VALUE="Следующий цвет текста">
<INPUT TYPE=BUTTON NAME=BUTTONFG VALUE="Следующий цвет фона"">
</FORM>
</BODY>
</HTML>
Текст этой программы можно взять здесь.
Результат работы приложения следующий:
Рис.3. Изменение цветов текста и фона документа
Пример №3. Проиллюстрируем использование метода WriteLn. В примере создается
новая страница, на которой отображается введенное пользователем имя.
<HTML> <HEAD> <TITLE>Изменение цветов.</TITLE> <SCRIPT LANGUAGE=VBScript> <!-- Sub Button1_OnClick() X=Form1.NM.Value Document.Open 'Открытие нового потока (страницы). Document.WriteLn "<P ALIGN=Center><FONT COLOR=Red" Document.WriteLn "SIZE=7>Новая страница</FONT></P>" Document.WriteLn "<P ALIGN=Center><FONT COLOR=Blue" Document.WriteLn "SIZE=5>Ваше имя: " Document.WriteLn X Document.WriteLn "</FONT></P>" Document.Close 'Закрытие страницы и ее отображение. End Sub '--> </SCRIPT> </HEAD> <BODY> <H2>Иллюстрация использования метода WriteLn.</H2> Нажмите кнопку для создания новой HTML-страницы.<BR> <FORM NAME=Form1> Но прежде задайте свое имя: <INPUT TYPE=TEXT NAME=NM VALUE="Имя?"><BR> <INPUT TYPE=BUTTON NAME=BUTTON1 VALUE="Нажмите кнопку!"> </FORM> </BODY> </HTML>
Текст этой программы можно взять
Пример №4. Проиллюстрируем использование конструкции цикла For Each…Next.
В следующем примере используется набор Forms для организации цикла по числу форм в документе.
Внутренний цикл по элементам набора Elements формы печатает в документ значения свойства
Value всех элементов формы.
<HTML> <HEAD> <TITLE>Изменение цветов.</TITLE> <SCRIPT LANGUAGE=VBScript> <!-- Sub Button1_OnClick() s="" 'Начальное значение строки. For Each i In Document.Forms s=s&"<P> Форма "&i.Name&": "&chr(10)&chr(13) For Each j In i.Elements s=s&"<P> Элемент: "&j.Value&chr(10)&chr(13) Next s=s&"<HR>" Next 'Вывод сформированной строки. Document.WriteLn s End Sub '--> </SCRIPT> </HEAD> <BODY> <H2>Отображение все элементов форм документа.</H2> Нажмите кнопку для создания новой HTML-страницы.<BR> <FORM NAME=Form1> <INPUT TYPE="CHECKBOX" NAME="CHECK1" VALUE="Флажок">Флажок </FORM> <FORM NAME=Form2> <INPUT TYPE="CHECKBOX" NAME="CHECK2" VALUE="Флажок1">Флажок </FORM> Щелчок по кнопке выведет имена всех элементов всех форм документа. <FORM NAME=Form3> <INPUT TYPE="BUTTON" NAME="BUTTON1" VALUE="Нажми меня!"> </FORM> </BODY> </HTML>
Текст этой программы можно взять здесь.
Результат отображения страницы в окне браузера показан на рисунке 5.
Рис.5. Отображение все элементов форм документа
Следующий шаг посвящен рассказу о коллекциях объекта Document.