Объектная модель
Как видно, практически все методы объекта document предназначены для динамического формирования его содержимого. Немного позже мы увидим, как это делается, а пока перейдем к рассмотрению списка событий, которые могут возникнуть при работе с данным объектом.
- Событие onftf terupdate возникает, когда пользователь при работе с формой, размещенной на Web-странице, отослал свои данные на сервер, и тот успешно принял и обработал их.
- Событие onBeforeUpdate инициируется в том случае, если пользователь ввел данные в форму, но вместо их отправки попытался выгрузить страницу из браузера.
- Событие onclick происходит в момент, когда пользователь производит на документе одиночный щелчок мышью.
- Событие onDbiciick возникает в момент двойного щелчка мышью на одном из элементов загруженной Web-страницы.
- Событие onDragstart инициируется в тот момент, когда пользователь начинает перетаскивать при помощи мыши какой-либо элемент загруженной Web-страницы.
- Событие onError инициируется при наличии ошибки в сценарии или в случае возникновения ошибки.,при передаче каких-либо данных, например, графических изображений.
- Событие onHeip возникает в тот момент, когда пользователь нажимает клавишу F1.
- Событие onKeyDown возникает, когда пользователь нажимает какую-либо клавишу. Какая именно клавиша была нажата, мы можем узнать при помощи объекта event.
- Событие onKeyPress постоянно генерируется в то время, когда пользователь нажал какую-либо клавишу и еше не отпустил ее.
- Событие оnкеуир возникает, когда пользователь отпускает ранее нажатую клавишу.
- Событие onLoact инициируется в тот момент, когда загрузка HTML-документа в браузер полностью заканчивается.
- Событие onMouseoown возникает в тот момент, когда пользователь нажимает какую-либо кнопку мыши.
- Событие onMouseMove постоянно генерируется при перемещении пользователем мыши.
- Событие onMbuseOut возникает, когда пользователь уводит курсор мыши с данного объекта.
- Событие onMouseOver возникает при попадании курсора мыши на объект.
- Событие onMouseup инициируется в тот момент, когда пользователь отпускает заранее нажатую кнопку мыши.
- Событие onReadystateChange инициируется каждый раз, когда по каким-либо причинам изменяется значение свойства readystate.
- Событие onseiectstart инициируется в тот момент, когда пользователь начинает выделять мышью некую часть Web-страницы.
На этом заканчивается список событий, которые могут возникать при работе с объектом document. Мы рассмотрели полностью структуру этого объекта. Но мы уже говорили что он является "родителем" для многих других объектов, которые более детально описывают элементы Web-страниц. Необходимо рассмотреть и их.
Мы уже видели, что объекта document существует свойство body, которое содержит все тело Web-страницы. Но страницы с фреймовой структурой вообще не содержат тег <body>. И здесь мы можем работать с коллекцией фреймов, которая носит наименование frames. Мы уже говорили, что коллекции, по сути, являются массивами, состоящими из объектов. Так, если нам надо получить доступ к какому-либо фрейму, мы можем сделать это либо при Помощи его порядкового номера, либо при помощи его наименования. Так, например, если самый верхний фрейм нашей Web-страницы носит наименование "topframe", то обратиться к нему мы можем при помощи двух эквивалентных конструкций:
window.frames(
0
)
window.frames(
"topframe"
)
Как мы помним, нумерация в массивах, а, следовательно, и в коллекциях, начинается с нуля. Но для циклической обработки коллекции нам необходимо будет знать не только стартовый номер, но и общее количество элементов, входящих в состав данной,коллекции. Поэтому следует знать, что для каждой коллекции существует служебное свойство length, которое содержит количество элементов в коллекции. Следует помнить, что количество элементов и порядковый номер последнего элемента – разные вещи, так как нумерация открывается нулем.
Из приведенного примера видно, что для доступа к элементу коллекции стоит сначала указать родительский объект. Наименования объектов разделяются точками.
Каждый элемент коллекции frames функционально эквивалентен объекту window, поэтому обладает всеми его свойствами, методами, событиями и встроенными объектами, исключая объекты, обеспечивающие доступ к внутренним механизмам браузера, такие как history и navigator. Следовательно, каждый элемент коллекции frames имеет встроенный объект document со всем его содержимым.
Объект document, как мы знаем, полностью описывает Web-страницу, отображаемую в окне просмотра браузера или фрейма. Следовательно, в состав этого объекта должны входить другие объекты и коллекции, которые смогут предоставить нам доступ к любому HTML-блоку, к любому тегу. Рассмотрим список этих объектов и коллекций с кратким описанием каждого из них.
- Коллекция links содержит все гиперссылки и области, сформированные тегами <агеа> на данной Web-странице.
- Коллекция forms обеспечивает доступ ко всем формам данного HTML-документа. Соответственно, каждый элемент этой коллекции содержит в качестве своих составных частей объекты, позволяющие обращаться к различным органам ввода данных, из которых и состоит форма.
- Коллекция anchors содержит все закладки на странице, доступ к которым осуществляется при помощи гиперссылок.
- Коллекция linages предназначена для хранения объектов графических изображений, внедренных в состав содержимого Web-страницы.
- Коллекция scripts обеспечивает доступ ко всем программам-сценариям, которые были вставлены в код HTML-документа при помощи тега <script>.
- Коллекция applets содержит все внедренные объекты, такие как апплеты, элементы ActiveX, графические изображения, видеоклипы и любые объекты, обрабатываемые и отображаемые при помощи расширений браузера.
- Коллекция piugins содержит объекты, связанные со всеми внедренными элементами, обрабатываемыми расширениями браузера.
- Коллекция stylesheets предоставляет нам доступ ко всем стилевым таблицам, внедренным в данный HTML-документ.
- Коллекция filters содержит все графические фильтры, Примененные к содержимому данной Web-страницы. Графические фильтры не указанны из HTML, они являются исключительной прерогативой DHTML.
- Коллекция all содержит ссылки на все теги и объекты, внедренные в состав содержимого данной Web-страницы.
- Объект selection позволяет работать с выделенной частью содержимого Web-страницы – Обычно это выделение производит пользователь.
- Объект textRange представляет собой блок текста, при помощи которого обычно разработчик динамически формирует текстовое содержимое HTML-документа.
Мы перечислили основные составные части объекта document. Конечно, одного их перечисления не достаточно для того, чтобы начать с ними работать. Но несколько позже, в следующих разделах данной главы мы будем разбирать примеры задач, решаемых с помощью этих объектов, а следовательно, нам придется тщательно рассмотреть их структуру.
А сейчас пора перейти к рассмотрению; событийной модели DHTML и ознакомиться с примерами применения программ-скриптов.