Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ASCII и latin.docx
Скачиваний:
3
Добавлен:
08.08.2019
Размер:
190.09 Кб
Скачать

13.5.5. Объект Window как контекст исполнения

Все сценарии, обработчики событий и URLадреса в JavaScript в качестве гло

бального объекта совместно используют один и тот же объект Window. Перемен

ные и функции в JavaScript – это не более чем свойства глобального объекта. Это

означает, что функции, объявленные в одном теге <script>, могут вызываться

сценариями во всех последующих тегах <script>.

Поскольку обработка события onload не начинается до тех пор, пока не отработа

ют все сценарии, каждый обработчик события onload обладает возможностью об

ращения к любым функциям и переменным, объявленным в сценариях доку

мента.

Всякий раз, когда в окно броузера загружается новый документ, объект Window

переводится в состояние по умолчанию: любые свойства и функции, объявлен

ные сценариями из предыдущего документа, удаляются и восстанавливаются

все переопределенные стандартные системные свойства. Каждый документ на

чинается с «чистого листа». Сценарии могут уверенно полагаться на это обстоя

тельство – они не унаследуют измененное окружение, оставшееся от предыду

щего документа. Кроме того, это означает, что все переменные и функции, опре

деляемые сценарием, будут существовать только до того момента, пока текущий

документ не замещен новым. Срок жизни свойств объекта Window совпадает со сроком жизни документа, кото

рый содержит JavaScriptкод и объявляет эти свойства. Объект Window обладает

более продолжительным временем жизни – он существует ровно столько, сколь

ко существует соответствующее ему окно броузера. Ссылка на объект Window оста

ется действительной независимо от того, сколько документов загружалось и вы

гружалось. Это верно только для вебприложений, которые имеют несколько

окон или фреймов. В данном случае JavaScriptкод из одного окна может исполь

зовать ссылку на другое окно или фрейм, причем эта ссылка останется работо

способной, даже если в другое окно или фрейм будет загружен новый документ.

15.2. Свойства объекта Document

Рассмотрев «старейшие» методы объекта Document, перейдем к его «старейшим»

свойствам:

bgColor

Цвета фона документа. Это свойство соответствует атрибуту bgcolor тега <body>.

cookie

Специальное свойство, позволяющее JavaScriptпрограммам читать и писать

cookieфайлы. Этому свойству посвящена отдельная глава – глава 19.

domain

Свойство, которое позволяет доверяющим друг другу вебсерверам, принад

лежащим одному домену, ослаблять связанные с политикой общего происхо

ждения ограничения на взаимодействие между их вебстраницами (подроб

ности см. в разделе 13.8.2).318 Глава 15. Работа с документами

lastModified

Строка, содержащая дату последнего изменения документа.

location

Устаревший синоним свойства URL.

referrer

URLадрес документа, содержащего ссылку (если таковая существует), кото

рая привела броузер к текущему документу.

title

Текст между тегами <title> и </title> данного документа.

URL

Строка, задающая URLадрес, с которого был загружен документ. Значение

этого свойства совпадает со значением свойства location.href объекта Window

за исключением случая перенаправления на стороне сервера.

Некоторые из этих свойств предоставляют информацию о документе в целом.

Следующий фрагмент можно поместить в конец каждого вашего документа, что

бы автоматически предоставлять пользователю дополнительные сведения о до

кументе, которые позволят судить о том, насколько устарел этот документ:

<hr><font size="1">

Документ: <i><script>document.write(document.title);</script></i><br>

URL: <i><script>document.write(document.URL);</script></i><br>

Дата последнего обновления:

<i><script>document.write(document.lastModified);</script></i>

</font>

Еще одно интересное свойство – referrer. Оно содержит URLадрес документа,

из которого пользователь перешел к текущему документу по ссылке. Это свойст

во позволяет предотвратить создание глубоких ссылок в недра вашего сайта. Ес

ли вы желаете, чтобы все посетители обязательно попадали на вашу домашнюю

страницу, можно организовать перенаправление, разместив следующий фраг

мент в начале всех страниц, за исключением домашней:

<script>

// Если переход выполнен по ссылке изза пределов сайта,

// выполнить перенаправление на домашнюю страницу

if (document.referrer == "" || document.referrer.indexOf("mysite.com") == 1)

window.location = "http://home.mysite.com";

</script>

Конечно, этот прием не следует рассматривать как серьезную защитную меру.

Вполне очевидно, что он не будет работать у пользователей, отключивших в сво

их вебброузерах режим исполнения JavaScriptкода.

Последнее интересное свойство объекта Document – свойство bgColor. Оно соответ

ствует HTMLатрибуту, потому использовать его не рекомендуется. Это свойство

упомянуто здесь лишь по историческим причинам – первая клиентская Java

Scriptпрограмма изменяла цвет фона документа. Даже оченьочень старые веб

броузеры изменят цвет фона документа, если в свойство document.bgColor запи

сать строку, устанавливающую цвет, например "pink" или "#FFAAAA".15.3. Ранняя упрощенная модель DOM: коллекции объектов документа 319

Полное описание этих старейших свойств объекта Document приводится в четвер

той части книги в том разделе, в котором описывается объект HTMLDocument.

Объект Document обладает другими важными свойствами, значениями которых

являются массивы объектов документа. Эти коллекции станут темой обсужде

ния следующего раздела

15.4. Обзор объектной модели W3C DOM

Рассмотрев раннюю упрощенную модель DOM, теперь обратимся к более мощ

ной и стандартизованной модели W3C DOM, пришедшей ей на смену. Программ

ный интерфейс (API) модели W3C DOM не особенно сложен, но прежде чем пе

рейти к рассмотрению DOMпрограммирования, необходимо уточнить несколь

ко вещей относительно DOMархитектуры.324 Глава 15. Работа с документами

15.4.1. Представление документов в виде дерева

HTMLдокументы имеют иерархическую структуру вложенных тегов, которая

в DOM представлена в виде дерева объектов. Узлы дерева представляют различ

ные типы содержимого документа. В первую очередь, древовидное представле

ние HTMLдокумента содержит узлы, представляющие элементы или теги, та

кие как <body> и <p>, и узлы, представляющие строки текста. HTMLдокумент

также может содержать узлы, представляющие HTMLкомментарии.1 Рассмот

рим следующий простой HTMLдокумент:

<html>

<head>

<title>Sample Document</title>

</head>

<body>

<h1>An HTML Document</h1>

<p>This is a <i>simple</i> document.

</body>

</html>

DOMпредставление этого документа приводится на рис. 15.1.

Тем, кто еще не знаком с древовидными структурами в компьютерном програм

мировании, полезно знать, что они заимствуют терминологию у генеалогиче

ских деревьев. Узел, расположенный непосредственно над данным узлом, назы

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]