Иерархия объектов
Среди объектов существуют определенные взаимоотношения. Например, объекты Navigator имеют структуру, отражающую структуру страницы HTML. Такие отношения называются иерархией экземпляров, так как эта иерархия работает только с конкретными экземлярами объектов, а не с абстрактными классими.
Объект window является родительским по отношению ко всем остальным объектам Navigator. Прямыми потомками объекта window являются объекты location, history и document. Объекты forms, links и anchors являются дочернеми для объекта document.
Каждый объект является потомком объекта более высокого уровня. Форма с названием orderForm является объектом и в то же время свойстом обекта document. Таким образом для вызова такой формы используется выражение:
document.orderForm
Иерархию объектов языка JavaScript можно сопоставить с иерархией объектов в реальном мире. Колеса, руль и педали - это все объекты, принадлежащие велосипеду. Велосипед представляет собой объект, принадлежащий к средствам наземного транспорта, которые, в свою очередь, принадлежат к более общей категории средств передвижения.
В терминах объектов JavaScript эти взаимоотношения могли бы быть выражены следующим образом:
travelMode.groundTransport.bicycle.handleBars
Наиболее общий объек высшего уровня находится слева в выражении, и слева направо происходит переход к более частным объектам, являющимся при этом наследниками высших в иерархии объектов. Таким образом чтобы обратиться к определенному свойству этих объектов, вы должны определить имя объекта и всех его предков.
Теперь проиллюстрируем иерархию объектов:
navigator
window
|
+--parent, frames, self, top
|
+--location
|
+--history
|
+--document
|
+--forms
| |
| elements (text fields, textarea, checkbox, password
| radio, select, button, submit, reset)
+--links
|
+--anchors
JavaScript и HTML Планировка
Чтобы использовать JavaScript корректно в Навигаторе, нужно понимать как Навигатор выполняет планировку. Планировка относится к преобразованию директив открытого HTML текста в графическое представление на вашем компьютере. Вообще говоря, планировка идет последовательно в Навигаторе. То есть Навигатор начинает с вершины HTML файла и продолжает идти вниз, выясняя, как выводить на экрану, как это делать. Это начинается с HEAD HTML документа, затем c вершины BODY и так далее.
Из-за этого "нисходящего" поведения, JavaScript выдает только тот HTML, с которым она столкнулась. Например вы определили форму с парой текстового вклада elements:
Затем эти элементы формы будут отражены, так как объекты JavaScript document.statform.username и document.statform.userage, которые вы можете использовать где-нибудь после того, как форма определена. Однако, вы могли бы не использовать эти объекты прежде, чем форма определена. Так, например, вы могли показывать значение этих объектов в скрипте после определения формы:
Однако, если Вы пробовали делать это перед определением формы (то есть выше этого в HTML - странице),то вы можете получить ошибку, так как объекты еще не существуют в Навигаторе.
Аналогично, если только произошла планировка, установившая значение свойства, не воздействует на ее значение или ее вид. Например, вы определили заголовок документа следующим образом:
Моя JavaScript Страница
Это отражается в JavaScript как значение document.title. Если только Навигатор выделил это в планировке (в этом случае, в названии окна Навигатора), Вы не можете изменять значение в JavaScript. Так, если ниже в странице, у вас есть следующий скрипт:
Document.title = " Новая улучшенная JavaScript страница "
Это не будет изменять значение document.title, не будет воздействовать на вид страницы, и не образуется ошибка.
Ключевые объекты Навигатора
Часть из наиболее используемых в Навигаторе обектов, включает документ, форму, и окно.
Использование объекта документ
Один из наиболее используемых в Навигаторе объект - это объект документа, потому что методы write и writeln могут вызвать HTML. Эти методы - это способ, которым Вы показываете утверждения JavaScript пользователю. Единственая разность между write и writeln - это то, что write записывает строку или несколько строк в окно документа, а writeln записывает строку или несколько строк в окно документа и добавляет символ новой строки в конец вывода. Но так как HTML игнорирует добавления символа новой строки, то это будет создавать эффект предварительно отформатированного текста, типа тега PRE.
Объект документа также имеет обработчики событий onLoad и onUnload, они вызываются соответственно для выполнения функции, когда пользователь впервые загрузил страницу и когда пользователь выходит из страницы.
Имеется только один объект документа в странице, это - предок для всей формы, связь и объекты якоря в странице.
<
Использование Объекта формы
Навигатор создает объект формы для каждой формы в документе. Вы можете называть форму в атрибуте NAME, как показано в примере:
Если был бы объект JavaScript, с именем myform основанный на этой форме. Форма имела бы свойства, соответствующие текстовому объекту, к которому Вы обратитесь как
Document.myform.quantity
Вы обратились бы к свойству значения этого объекта как
Document.myform.quantity.value
Формы в документе сохранены в массиве, названный form. Первая (самая верхняя в странице) форма, как form[0], вторая, как form[1], и так далее. Так что вышеупомянутые ссылки могли выглядеть так:
Document.forms [0] .quantity document.forms [0] .quantity.value
.
Аналогично, элементы в форме, типа текстовых полей, кнопок, и так далее, сохранены в массиве elements.
Использование объекта окна
Объект окна - это "родительский" объект для всех других объектов в Навигаторе. Вы можете всегда упустить имя объекта по отношению к свойствам окна и методов.
Окно имеет несколько очень полезных методов, которые создают новые окна и всплывающие диалоговые окна:
- open и close: Открывает и закрывает окно браузера
- alert: Выдает аварийное диалоговое окно
- confirm: Выдает диалоговое окно подтверждения
Объект окна имеет свойства во всех фреймах в FRAMESET. Фреймы сохранены в массиве фреймов. Массив фреймов содержит вход для каждого дочернего фрейма в окне. Например, если окно содержит три дочерних фрейма, то эти фреймы отражены как window.frames [0], window.frames [1], и window.frames [2].
Свойства состояния открыты для вас, чтобы вы могли установить сообщение в строке состояния внизу клиенского окна.