Когда Вы загружаете страницу в Навигаторе, это создает ряд объектов, соответствующих странице, ее содержание, и другая подобная информация.
Каждая страница всегда имеет следующие объекты:
Свойства объекта документа в значительной степени - зависимы. То есть они являются главнымии в содержании, которое вы помещаете в документ. Например, объект документа имеет свойства для каждой формы и для каждого якоря в документе.
Например вы создали страницу под именем simple.html, которая содержит следующее:
Как всегда, имелось бы окно, локализация, хронология, и бъект документа. Они имели бы следующие свойства:
Это только некоторые основные значения приведенного примера. Навигатор также создал бы следующие объекты:
Они имели бы такие свойства:
Каждая из свойств выше перечисленных начинается с Document, затем сопровождаемым именем формы, myfor, и потом название свойства или название элемента формы. Эта последовательность следует иерархии объекта Навигатора, расказанная в следующем разделе.
Среди объектов существуют определенные взаимоотношения. Например, объекты Navigator имеют структуру, отражающую структуру страницы HTML. Такие отношения называются иерархией экземпляров, так как эта иерархия работает только с конкретными экземлярами объектов, а не с абстрактными классими.
Объект window является родительским по отношению ко всем остальным объектам Navigator. Прямыми потомками объекта window являются объекты location, history и document. Объекты forms, links и anchors являются дочернеми для объекта document.
Каждый объект является потомком объекта более высокого уровня. Форма с названием orderForm является объектом и в то же время свойстом обекта document. Таким образом для вызова такой формы используется выражение:
Иерархию объектов языка JavaScript можно сопоставить с иерархией объектов в реальном мире. Колеса, руль и педали - это все объекты, принадлежащие велосипеду. Велосипед представляет собой объект, принадлежащий к средствам наземного транспорта, которые, в свою очередь, принадлежат к более общей категории средств передвижения.
В терминах объектов JavaScript эти взаимоотношения могли бы быть выражены следующим образом:
Наиболее общий объек высшего уровня находится слева в выражении, и слева направо происходит переход к более частным объектам, являющимся при этом наследниками высших в иерархии объектов. Таким образом чтобы обратиться к определенному свойству этих объектов, вы должны определить имя объекта и всех его предков.
Теперь проиллюстрируем иерархию объектов:
Чтобы использовать JavaScript корректно в Навигаторе, нужно понимать как Навигатор выполняет планировку. Планировка относится к преобразованию директив открытого HTML текста в графическое представление на вашем компьютере. Вообще говоря, планировка идет последовательно в Навигаторе. То есть Навигатор начинает с вершины HTML файла и продолжает идти вниз, выясняя, как выводить на экрану, как это делать. Это начинается с HEAD HTML документа, затем c вершины BODY и так далее.
Из-за этого "нисходящего" поведения, JavaScript выдает только тот HTML, с которым она столкнулась. Например вы определили форму с парой текстового вклада elements:
Затем эти элементы формы будут отражены, так как объекты JavaScript document.statform.username и document.statform.userage, которые вы можете использовать где-нибудь после того, как форма определена. Однако, вы могли бы не использовать эти объекты прежде, чем форма определена. Так, например, вы могли показывать значение этих объектов в скрипте после определения формы:
Однако, если Вы пробовали делать это перед определением формы (то есть выше этого в HTML - странице),то вы можете получить ошибку, так как объекты еще не существуют в Навигаторе.
Аналогично, если только произошла планировка, установившая значение свойства, не воздействует на ее значение или ее вид. Например, вы определили заголовок документа следующим образом:
Это отражается в JavaScript как значение document.title. Если только Навигатор выделил это в планировке (в этом случае, в названии окна Навигатора), Вы не можете изменять значение в JavaScript. Так, если ниже в странице, у вас есть следующий скрипт:
Document.title = " Новая улучшенная JavaScript страница "
Это не будет изменять значение document.title, не будет воздействовать на вид страницы, и не образуется ошибка.
Часть из наиболее используемых в Навигаторе обектов, включает документ, форму, и окно.
Один из наиболее используемых в Навигаторе объект - это объект документа, потому что методы write и writeln могут вызвать HTML. Эти методы - это способ, которым Вы показываете утверждения JavaScript пользователю. Единственая разность между write и writeln - это то, что write записывает строку или несколько строк в окно документа, а writeln записывает строку или несколько строк в окно документа и добавляет символ новой строки в конец вывода. Но так как HTML игнорирует добавления символа новой строки, то это будет создавать эффект предварительно отформатированного текста, типа тега PRE.
Объект документа также имеет обработчики событий onLoad и onUnload, они вызываются соответственно для выполнения функции, когда пользователь впервые загрузил страницу и когда пользователь выходит из страницы.
Имеется только один объект документа в странице, это - предок для всей формы, связь и объекты якоря в странице. <
Навигатор создает объект формы для каждой формы в документе. Вы можете называть форму в атрибуте NAME, как показано в примере:
Если был бы объект JavaScript, с именем myform основанный на этой форме. Форма имела бы свойства, соответствующие текстовому объекту, к которому Вы обратитесь как
Формы в документе сохранены в массиве, названный form. Первая (самая верхняя в странице) форма, как form[0], вторая, как form[1], и так далее. Так что вышеупомянутые ссылки могли выглядеть так:
Аналогично, элементы в форме, типа текстовых полей, кнопок, и так далее, сохранены в массиве elements.
Объект окна - это "родительский" объект для всех других объектов в Навигаторе. Вы можете всегда упустить имя объекта по отношению к свойствам окна и методов.
Окно имеет несколько очень полезных методов, которые создают новые окна и всплывающие диалоговые окна:
Объект окна имеет свойства во всех фреймах в FRAMESET. Фреймы сохранены в массиве фреймов. Массив фреймов содержит вход для каждого дочернего фрейма в окне. Например, если окно содержит три дочерних фрейма, то эти фреймы отражены как window.frames [0], window.frames [1], и window.frames [2].
Свойства состояния открыты для вас, чтобы вы могли установить сообщение в строке состояния внизу клиенского окна.