Объект window использует три метода отображения сообщений, добавляя в сценарий элементы интерактивности. Мы уже использовали их в рассмотренных сценариях.
Метод alert отображает диалоговое окно с сообщением для пользователя. Оно содержит только одну кнопку ОК.
Метод confirm отображает диалоговое окно подтверждения выполнения операции. Оно содержит кнопки ОК и Cancel (Отмена), позволяющие выбрать один из вариантов.
Метод prompt запрашивает у пользователя необходимые для сценария данные. Он возвращает введенный пользователем текст.
Создание сценария отображения диалоговых окон
В качестве наглядного примера применения разных диалоговых окон приведен листинг 23.1 с кодом HTML-документа, позволяющим протестировать диалоговые окна.
На странице отображаются три кнопки, каждая из них запускает свой обработчик события. Давайте детально их рассмотрим.
Проще всего вызывается сообщение. Оно отображается после щелчка на первой кнопке.
После щелчка на второй кнопке в строке состояния отображается возвращаемое значение.
Третья кнопка используется для вывода диалогового окна запроса данных. Заметьте, что метод prompt имеет и второй параметр, определяющий значение по умолчанию, которое указывается в поле. Если в этом диалоговом окне щелкнуть на кнопке Cancel, то будет возвращено значение null.
Управление фреймами
Использование объектов фреймов
При разделении окна на отдельные фреймы управление ими осуществляется с помощью объекта frame. Объект frame используется для управления только текущим фреймом. Этот объект синтаксически равноправен отрибуту name в дескрипторе <FRAME>
Вы еще помните, что оба ключевых слова window и self соответствуют текущему окну? При использовании фреймов эти ключевые слова относятся к текущему фрейму. Еще одно ключевое слово parent позволяет обращаться к главному окну браузера.
Каждый объект frame выступает в качестве дочернего по отношению к родительскому объекту window. В листинге 23.2 приведен код HTML определения набора фреймов.
Этот код разделяет документ HTML на равные четверти. Если вы имеете готовый файл topleft.htm, то он будет соответствовать объекту parent.topleft. В этом случае ключевые слова window и self также будут соответствовать фрейму topleft.
Если вы используете закрепленные фреймы, то ситуация немного усложняется: объект window по-прежнему соответствует текущему фрейму, parent - определяет набор фреймов, в котором расположен текущий фрейм, а top - соответствует основному набору фреймов, содержащему остальные наборы.
Массив frames
Вместо того чтобы в программе обращаться к фрейму по имени, можно использовать массив frames. Он сохраняет сведения обо всех фреймах документа. В этом случае фреймы индексируются (начальное значение 0) и определяются в дескрипторе <FRAME>.
Например, вы можете обращаться к фреймам в листинге 23.2 с помощью следующего кода:
parent.frames[0] соответствует фрейму topleft
parent.frames[1] соответствует фрейму topright
parent.frames[2] соответствует фрейму bottomleft
parent.frames[3] соответствует фрейму bottomright
Для обращения к фрейму документа можно использовать и иерархическую структуру объектов. Выбирайте тот способ, который проще и удобнее для использования. Например, в документе, состоящем из 10 фреймов, к фреймам проще обращаться как к элементам массива. А двухфреймовым документом проще управлять с помощью имен объектов.
Создание навигационного фрейма
С помощью объектов frame можно создать навигационный фрейм, определяющий отображаемые на экране данные, введенные во втором фрейме.
Сначала необходимо определить набор фреймов. Это проще простого. Листинг 23.3 показывает, как определить фреймы, разделяющие страницу на левую и правую области.
Затем нам необходимо определить документ для левого фрейма, используемого для перемещения по документу другого фрейма. Он представлен в листинге 23.4
Листинг 23.4. Документ HTML навигационного фрейма
<HTML>
<HEAD>
<TITLE>Навигационный фрейм</TITLE>
</HEAD>
<BODY>
<P>
Одна из следующих ссылок загружает новую
страницу в правой области
</P>
<UL>
<LI><A HREF="#"
onClick="parent.right.location='order.htm';
window.location='ordernav.htm';">
Order Form</A>
<LI><A HREF="#"
onClick="parent.right.location='email.htm';
window.location='emailnav.htm';">
Email</A>
<LI><A HREF="#"
onClick="parent.right.location='sales.htm';
window.location='salesnav.htm';">
Sales</A>
<LI><A HREF="#"
onClick="parent.right.location='links.htm';
window.location='linksnav.htm';">
Other Links</A>
</UL>
</BODY>
<HTML>
Этот программный код выглядит сложным из-за присутствия в нем двух операторов JavaScript, определяющих ссылки на странице. Эти операторы немного отличаются для разных ссылок. Вот пример первого по следованию оператора, задающего в программе HTML ссылку на ресурс:
Этот оператор представляет собой обработчик событий, загружающий необходимую вэб-страницу в правом фрейме, а также новый документ в навигационном фрейме. Поскольку сценарий выполняется только в пределах фрейма, необходимо перед именами объектов другого фрейма использовать слово parent.
Если вы хотите только загрузить указанный документ после щелчка на ссылке, используйте атрибут TARGET дескриптора <А>. Он позволяет избежать использование сценария JavaScript. Если вы добиваетесь одновременного обновления обоих кадров, используйте приведенный выше код.
Чтобы протестировать сценарий, загрузите его в браузере. Убедитесь, что после щелчка на ссылке в правой области загружается необходимый документ HTML (их сделаете сами). Сначала загрузите код листинга 23.3.
Вопросы для самоконтроля
(Если в почтовой программе кнопка не срабатывает, сохраните страницу на диск и откройте в браузере.)
Всем вкладывать деньги сюда. Проверенный, честный инвестиционный фонд
Инвестиционный фонд Реал-Инвест. От 0.85% до 1.7% в день. Вложили 500$, получайте каждый день по 6.5$. Деятельность фонда на 70% основана на безрисковых операциях. Минимальная сумма вклада 10$. Возможность снимать проценты уже на следующий день после вклада. 100% гарантия на возврат денег. Полная информация о владельце.