Объектная модель языка. Объекты браузера. В предыдущей главе мы рассмотрели базовые операторы языка JavaScript.
В примерах использовали объекты и методы языка. Для тех, кто только начал
изучать JavaScript некоторые моменты могли ввести в заблуждение. Здесь
я более подробно опишу объектную модель языка. Также как можно более подробно
опишу стандартные объекты JavaScript. Объектная модель языка JavaScript При создании HTML-документов и JavaScript-программ необходимо
учитывать структуру объектов. Все объекты можно разделить на три группы:
Объектами браузера являются зависимые от браузера объекты: window
(окно), location (местоположение) и history (история). Внутренние
объекты включают простые типы данных, такие как строки (string),
математические константы (math), дата (date) и другие. Методы объектовС объектами связаны методы, которые позволяют управлять этими объектами, а также в некоторых случаях менять их содержимое. Кроме того в языке JavaScript имеется возможность создавать свои методы объектов. При использовании метода объекта, нужно перед именем метода указать имя объекта к которому он принадлежит. Например, правильным обращением к методу document является выражение document.write(), а просто выражение write() приведет к ошибке. Свойства объектов языка JavaScriptВ объектно-ориентированном программировании используется также термин свойство. Свойство - это именованное значение, которое принадлежит объекту. Все стандартные объекты языка JS имеют свойства. Например, в прошлой главе мы использовали в одном из примеров свойство bgColor объекта document. данное свойство соответствует атрибуту bgColor тега <body> - цвет фона документа. Для обращения к свойству необходимо указать имена объекта и свойства, разделив их точкой. Каждый объект имеет собственный набор свойств. Набор свойств нового объекта можно задать при определении объекта. Однако, некоторые свойства объктов существуют только для чтения, и вы не можете их менять. В таких случаях можно получить только значения этих свойств. Как показывает практика, такие свойства изменять обычно без надобности и проблем в связи с этим не возникает. Объекты браузеровБраузеры поддерживают объекты различных типов. HTML-объектами
являются объекты, которые соответствуют тегам языка HTML. К ним относятся
метки, гиперсвязи и элементы формы - текстовые поля, кнопки, списки и
др. Объекты верхнего уровня, или объекты браузера, - это объекты, поддерживаемые
в среде браузера: window, location, history, document, navigator.
Объекты, перечисленные в таблице, создаются автоматически при загрузке
документа в браузер.
Объект windowОбъект window обычно соответствует главному окну браузера и является
объектом верхнего уровня в языке JavaScript, поскольку документы, собственно,
и открываются в окне. В фреймосодержащих документах, объект window может
не всегда соответствовать главному окну программы. Поэтому для обращения
к конкретному окну следует использовать свойство frames объекта parent.
Фреймы - это те же окна. Чтобы обратиться к ним в языке JavaScript, можно
использовать массив frames. Например, выражение parent.frames[0]
обращается к первому фрейму окна браузера. Предполагается, что такое
окно существует, но при помощи метода window.open() можно открывать
и другие окна и обращаться к ним посредством свойств объекта window.
Здесь windowVar - экземпляр объекта window. Имя self - синоним, используемый для обращения к текущему окну во фреймосодержащем документе, тогда как имя top применяется для обращения к главному окну браузера. Для этой цели можно применить и объект parent. Однако следует иметь в виду, что значением parent является ссылка на родительское окно, когда top - ссылка на окно верхнего уровня, которое содержит либо данный фрейм, либо фрейм содержащий вложенный фрейм. Обращение напрямую к методам и свойствам возможно при использовании оператора with. СвойстваОбъект window имеет свойства:
МетодыМетод alert() применяется для того, чтобы вывести на экран текстовое сообщение. Для открытия окна используется метод open(), а для закрытия - метод close(). С помощью метода confirm() происходит вывод на экран окна сообщения с кнопками Yes и No, и возвращает булевое значение true или false, в зависимости от нажатой кнопки. Посредством метода prompt() на экран выводится диалоговое окно с полем ввода. Метод setTimeout() устанавливает в текущем окне обработку событий, связанных с таймером, а метод clearTimeout() отменяет обработку таких событий. Обработчики событийОбъект window не обрабатывает события до тех пор, пока в окно не загружен документ. Однако можно обрабатывать события, связанные с загрузкой и выгрузкой документов. Обработчики таких событий задаются как значения атрибутов onLoad и onUnload, определяемых в теге <body>. Эти же атрибуты могут быть определены в тегах <frameset> фреймосодержащих документов. пример: Мы хотим загрузить, например, страницу
http://my.site.ru в окно размером в 640х480 пикселов: Объект documentОбъект document соответствует всему гипертекстовому документ,
вернее, той его части, которая заключена в контейнер <body>
. . . </body>. Документы отображаются в окнах браузера,
поэтому каждый из них связан с определенным окном. Все HTML-объекты являются
свойствами объекта document, поэтому они находятся в самом документе.
Например, в языке JS к первой форме документа можно обратиться, используя
выражение: СвойстваОбъект document имеет достаточно много свойств, каждое из которых соответствует определенному HTML-тегу в текущем документе:
МетодыМетод clear() предназначен для очистки текущего документа. Лучше использовать для очистки методы open() и close(). Для записи информации в браузер применяют методы write() и writeln(). Покольку эти методы записывают текст в браузер в HTML-формате, вы можете создавать любой HTML-документ динамически, включая готовые приложения на языке JavaScript. Если в окно загружен документ, то запись данных поверх него может привести к сбою. Поэтому в окно следует записывать поток данных, для чего с помощью метода document.open() нужно открыть документ, а затем, вызвав необходимое количество раз метод document.wtite(), записать данные в документ. В заключение, чтобы послать данные в браузер, следует вызвать метод document.close(). Обработчики событийВ тегах <body> и <frame> можно использовать обработчики событий, связанных загрузкой и выгрузкой документа, onLoad и onUnload. Примеры использования событий будем разбирать позже. Приведем несколько примеров использования объекта document.Для записи текста в HTML-формате в браузер иногда применяют функцию
document.writeln(). Например, можно динамически создавать теги
изображений, выводя изображения на экран посредством следующего: Объект location Данный объект сохраняет местоположение текущего документа в
виде адреса URL этого документа. При управлении объектом location
существует возможность изменять адрес URL документа. Объект location
связан с текущим объектом window - окном, в которое загружен
документ. Документы не содержат информации об адресах URL. Эти адреса
являются свойством объектов window. СвойстваОбъект location имеет следующие свойства:
Методы и обработчики событийДля объекта location методы, не определены, также не связан с какими-либо обработчиками событий. ПримерыЧтобы присвоить свойству location текущего окна в качестве
значения новый адрес URL, используйте такой вид: Объект historyОбъект history содержит список адресов URL, посещенных в этом сеансе. Объект history связан с текущим документом. Несколько методов этого объекта позволяют загружать в браузер различные ресурсы и обеспечивают навигацию по посещенным ресурсам.Синтаксис: history.propertyName history.methodName (parameters) СвойстваЗначением свойства length является количество элементов в списке объекта history. МетодыМетод back() позволяет загружать в браузер предыдущий ресурс, в то время как метод forward() обеспечивает обращение к следующему ресурсу в списке. С помощью метода go() можно обратиться к ресурсу с определенным номером в списке объекта history. Обработчики событий для объектов history не определены. Приведем примеры использования объекта history: Объект navigatorОбъект navigator содержит информацию об используемой в настоящее
время версии браузера. Этот объект применяется для получения информации
о версиях. Свойства
Пока закончим эту главу. Здесь я попытался ввести понятия объектов и связанных с ними методов, свойств и обработчиков событий. Также описал объекты браузера. В следующих главах будут описаны остальные объекты языка JavaScript. [<<Назад] [В начало] [Следущий>>] |