Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1744

.pdf
Скачиваний:
5
Добавлен:
07.01.2021
Размер:
1.69 Mб
Скачать

Рис. 41. Вид Web-страницы в окне браузера

4.3.6. Использование объекта window в формах

Преимущество JavaScript, даже по сравнению со сложными языками программирования, состоит в том, что он позволяет управлять браузером. Сценарий позволяет загрузить в окно браузера новую Web-страницу, управлять ее внешним видом и преобразовывать документ, а также запускать новые окна браузера.

В табл. 7 приведены методы объекта window, позволяющие управлять окнами.

Таблица 7

Методы объекта window для управления окнами

 

 

Метод

Описание

open

Создание нового окна

close

Закрытие окна

setTimeout

Определяет временную задержку перед выполнением

указанной команды

 

setInterval

Выполнение действий, повторяющихся с определенным

интервалом времени

 

clearTimeout

Отмена действия метода setTimeout()

clearInterval

Отмена действия метода setInterval()

showModalDialog

Отображение модальных диалоговых панелей

returnValue

Возврат значения

showhelp

Отображение справочной информации

Новое окно браузера создается с помощью метода window.open(). Метод window.open() имеет ряд дополнительных аргументов, которые позволяют задать местоположение окна, его размер и тип, а также указывают, должно ли окно иметь полосы прокрутки, панель команд

ит. п. Помимо этого можно задавать и имя окна.

Вобщем виде данный метод можно представить следующим образом:

nw=window.open('URL', 'Имя', 'Параметры')

70

Рассмотрим команду более подробно:

Переменная nw сохраняет данные нового объекта window. Ее имя можно использовать с методами и свойствами созданного объекта window.

Первый параметр метода window.open() – это URL документа, загружаемого в окне. Если его не заполнить, то окно останется пустым.

Второй параметр определяет название окна (Имя). Это имя используется в качестве значения параметра TARGET у тегов

<FORM> и <A>.

Третий параметр представляет список необязательных опций, разделенных запятой. С их помощью вы определяете вид нового окна: наличие в нем панелей инструментов, строки состояния и других элементов.

В табл. 8 приведен список опций, задаваемых третьим параметром (Параметры) метода open().

Таблица 8

Опции значения параметра метода open()

Параметр

 

Значение

 

Описание

 

 

1

 

2

 

 

3

 

 

 

 

 

 

 

 

Указывает, развернуто ли новое

окно

на

fullscreen

 

yes

 

no

 

 

 

полный экран или как обычное

окно.

По

 

1

 

0

 

 

 

 

 

умолчанию развернуто как обычное окно

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

channelmode

 

yes

 

no

 

Позволяет указать, отображается ли полоса

 

1

 

0

 

каналов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Позволяет указать, отображается ли полоса

toolbar

 

yes

 

no

 

 

1

 

0

 

кнопок

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Позволяет указать, отображается ли полоса

location

 

yes

 

no

 

1

 

0

 

для ввода адреса

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Позволяет указать, отображается ли полоса

directories

 

yes

 

no

 

 

1

 

0

 

кнопок для выбора каталогов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Позволяет указать, отображается ли полоса

status

 

yes

 

no

 

 

1

 

0

 

статуса

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

71

 

 

 

 

 

 

Окончание табл. 8

 

 

 

 

 

 

 

1

 

2

 

 

3

 

 

 

 

 

 

Позволяет указать, отображается ли полоса

Menubar

 

yes

 

no

 

1

 

0

 

меню

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задает отображение горизонтальной и

scrollbars

 

yes

 

no

 

 

1

 

0

 

вертикальной полос прокрутки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Позволяет указать, может ли окно изменять

resizable

 

yes

 

no

 

 

1

 

0

 

свой размер

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задает ширину окна в пикселях.

width

 

yes

 

no

 

1

 

0

 

Минимальное значение 100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задает высоту окна в пикселях.

height

 

yes

 

no

 

 

1

 

0

 

Минимальное значение 100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задает вертикальную координату левого

top

 

yes

 

no

 

 

1

 

0

 

верхнего угла окна

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задает горизонтальную координату левого

left

 

yes

 

no

 

 

1

 

0

 

верхнего угла окна

 

 

 

 

 

 

 

 

 

 

 

Рассмотрим примеры на использование методов объекта window в формах с обработчиками событий.

Пример

Создадим форму, состоящую из трех кнопок. Первая кнопка с надписью «Открыть новое окно» позволяет открыть новое окно, вторая кнопка с надписью «Закрыть новое окно» позволяет закрыть созданное окно, третья кнопка с надписью «Закрыть главное окно» позволяет закрыть окно с формой.

<html>

<head>

<title>Работа с окнами</title> </head>

<body>

<h3>Работа с окнами</h3> <hr>

Для открытия и закрытия окон используйте эти кнопки

<hr>

<form name="winform">

72

<input type="button" value="Открыть новое окно" onClick="NewWin=window.open('1.htm', 'NewWin', 'toolbar=yes, status=yes, menubar=yes, resizable=yes, width=300,height=200')">

<p>

<input type="button" value="Закрыть новое окно" onClick="NewWin.close()">

<p>

<input type="button" value="Закрыть главное окно" onClick="window.close()">

</form>

<hr>

</body>

</html>

На рис.42 показано, как будет выглядеть форма в окне браузера после выполнения описанного сценария.

Рис. 42. Вид Web-страницы в окне браузера

Если щелкнуть по кнопке «Открыть новое окно», то будет открыто новое окно с заданными параметрами (в окно будет загружен файл «1.htm»).

Если щелкнуть по кнопке «Закрыть новое окно», то новое окно закроется.

73

Если щелкнуть по кнопке «Закрыть главное окно», то предварительно отобразится сообщение с предупреждением о закрытии окна. Вид сообщения приведен на рис. 43. Если пользователь выберет «Да», то главное окно будет закрыто.

Рис. 43. Вид Web-страницы в окне браузера

Пример

С помощью метода window.setInterval() организовать вывод на экран окна с сообщением «Прошло 5 секунд» через каждые 5 секунд.

<html>

<head>

<title>Временные задержки</title> <script language="JavaScript"> function wz(){ window.alert('Прошло 5 секунд')

}

function demo(){

//вызывать функцию wz каждые 5 секунд window.setInterval('wz()', 5000)

}

demo()

</script>

</head>

<body>

<p> Ждем появления окна с сообщением через каждые 5 секунд

</body>

</html>

На рис.44 показано, как будет выглядеть форма в окне браузера после выполнения описанного сценария.

74

Рис. 44. Вид Web-страницы в окне браузера

Для отображения модальных диалоговых окон используется метод window.showModalDialog(). В общем виде данный метод выглядит следующим образом:

d=window.showModalDialog('URL','Аргументы','Параметры')

где

URL – адрес диалогового окна. Указание пустой строки (' ') недопустимо.

Аргументы – необязательный список аргументов любого типа (в том числе массив), которые могут быть переданы в диалоговое окно.

Параметры – необязательный список параметров диалогового окна, описанных в табл. 9.

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

Подобные окна имеют следующие особенности:

отсутствуют кнопки навигации;

не работает правая кнопка мыши;

содержимое нельзя выделить.

Метод window.showModalDialog() возвращает значение,

присвоенное свойству returnValue диалогового окна.

Таблица 9

 

 

Список параметров

 

 

 

 

Параметр

Значение

 

Описание

1

2

 

3

border

thick | thin

 

Задает толщину рамки окна

 

 

 

 

dialogWidth

Число (px, %)

 

Задает ширину диалогового окна

 

 

 

 

75

 

 

 

 

 

 

Окончание табл. 9

1

 

 

2

 

3

dialogHeight

 

Число (px, %)

 

Задает высоту диалогового окна

 

 

 

 

 

 

 

dialogTop

 

Число (px, %)

 

Задает вертикальную координату левого

 

 

верхнего угла диалогового окна

 

 

 

 

 

 

dialogLeft

 

Число (px, %)

 

Задает горизонтальную координату левого

 

 

верхнего угла диалогового окна

 

 

 

 

 

 

 

 

 

 

 

 

 

center

 

yes

 

no

 

Задает выравнивание диалогового окна по

 

1

 

0

 

центру экрана

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

maximize

 

yes

 

no

 

Добавляет кнопку "Развернуть" в строке

 

1

 

0

 

заголовка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

minimize

 

yes

 

no

 

Добавляет кнопку "Свернуть" в строке

 

1

 

0

 

заголовка

 

 

 

 

 

 

 

 

 

 

 

Пример

Пусть требуется при нажатии кнопки вызвать диалоговую панель для ввода пароля. Введенный пароль возвращается запрашивавшей странице.

Создадим файл index.htm (данный файл является основной webстраницей):

<html>

<head>

<title>Главная страница</title> </head>

<body>

<script language="JavaScript"> function p() {

s=window.showModalDialog('ss.htm', null, 'dialogWidth:15em; dialogHeight:10em; center:1')

alert('password='+s)

}

</script>

<form>

<center>

<input type='button' value='Нажми' onClick='p()'> </form>

</body> </html>

76

Создадим файл ss.htm (описание диалоговой панели, содержащей строку ввода пароля):

<html>

<head>

<title>Диалоговая панель</title> </head>

<body bgcolor='#abcdef'> <script language="JavaScript"> function w()

{

window.returnValue=window.document.all.s.value

window.close()

}

</script>

<form>

<center> Enter password:

<input type=password name=s>

<input type='button' value='OK' onClick='w()'> </form>

</body>

</html>

Рис. 45. Вид Web-страницы в окне браузера

Рассмотрим более подробно данный пример: при нажатии на кнопку "Нажми" вызывается функция p(), в которой используется

77

метод window.showModalDialog(), с помощью которого открывается диалоговая панель, описанная в файле ss.htm.

В этой панели отображается форма со строкой ввода и кнопкой «ОК». При нажатии кнопки содержимое строки с паролем передается вызывавшей странице (для этого используется метод window.returnValue), окно с формой закрывается, а введенный пароль отображается в окне alert. На рис.45 показано, как будет выглядеть форма в окне браузера после выполнения описанного сценария.

4.3.7. Обработка элементов форм

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

Пример

Создадим форму-тест с двумя вопросами и обработаем результаты проведенного тестирования.

<html> <title>Тест</title> <body>

<script language="JavaScript"> function Ok(){

var A = new Array(document.f.t1, document.f.t2, document.f.t3, document.f.t4, document.f.s1, document.f.s2,document.f.s3,document.f.s4)

var Res = 0 for (i in A) {

if (A[i].checked) Res = Res + parseInt(A[i].value)

}

switch (Res){

case 3: alert("Отлично! Вы полностью усвоили материал данной темы.")

break

case 2: alert("Хорошо! Но не блестяще!") break

case 1: alert("Удовлетворительно! Можно лучше.") break

case 0: alert("Плохо! Изучите материал заново.")

}

}

78

</script> <form name="f">

<p align="center"><font size="5"> <b>Тест</b></font></p> <font size="4">1. Какой метод реализует объединение всех элементов массива в одну строку? <br>

<font size="3">

<input type="radio" name="t1" value="0"> reverse() <br> <input type="radio" name="t2" value="0"> sort()<br> <input type="radio" name="t3" value="1"> join()<br> <input type="radio" name="t4" value="0"> concat()<br>

<br><br>

<font size="4">2. Какие методы позволяют организовать ввод информации? <br>

<font size="3">

<input type="checkbox" name="s1" value="0"> alert <br> <input type="checkbox" name="s2" value="1"> confirm <br> <input type="checkbox" name="s3" value="1"> prompt <br> <input type="checkbox" name="s4" value="0"> document.write

<br>

<p align="center">

<input onclick=Ok() type="button" value='Результат тестирования'>

<input type="reset" name="reset" value="Сброс"> </form>

</body>

</html>

На рис.46 показано, как будет выглядеть форма в окне браузера после выполнения описанного сценария.

Впрограмме создана форма с именем f, содержащая два вопроса

идве кнопки. Ответы на первый вопрос организованы с помощью элементов форм – переключателей, а ответы на второй вопрос организованы с помощью элементов форм – флажков. Каждый элемент (переключатель, флажок) имеет свое имя (t1, t2, t3, t4, s1, s2, s3, s4), а также значение value (если ответ правильный, то значение 1; если ответ не правильный, то значение 0).

При нажатии на кнопку «Результат тестирования» (обработчик события onClick) вызывается функция Ok(), производящая подсчет набранных очков и выводящая соответствующее сообщение. Все элементы формы (переключатели и флажки) организованы в массив

79

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