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

1744

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

//в переменную seg заносим часы var seg=h

//в переменную seg добавляем минуты

//через «:»

//если минуты меньше 10, то добавляем символ «0» перед

//минутами

seg+=((minute<10)?":0":":")+minute

//в переменную seg добавляем секунды через «:»

//если секунды меньше 10, то добавляем символ «0» перед //секундами

seg+=((sec<10)?":0":":")+sec //выводим время document.write(seg) </script>

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

сценария.

Глава 4. ОБРАБОТЧИКИ СОБЫТИЙ

4.1. События

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

Каждое событие имеет собственное имя. Существуют следующие группы событий:

DOM-события, которые инициируются элементами DOM. Например, событие сlick происходит при нажатии на элементе, а событие mouseover когда указатель мыши появляется над элементом. Именно DOM-события связывают действия, происходящие в документе, с кодом JavaScript, тем самым обеспечивая динамический Web-интерфейс.

События окна. Например, событие resize при изменении размера окна браузера.

Другие события, например, load, readystatechange. Они используются, скажем, в технологии AJAX.

В табл. 5 представлены события и элементы документов HTML, в которых эти события могут происходить.

50

 

 

 

 

 

Таблица 5

 

События и объекты

 

 

 

 

 

 

 

 

Событие

Объекты

Когда происходит событие

1

2

 

 

3

 

 

Abort

image

Отказ от загрузки изображения

 

Blur

windows, элементы

Потеря объектом фокуса

 

 

формы

 

 

 

 

 

Change

text, textarea, select

Изменение значения элемента

 

Click

button, radio, checkbox,

Щелчок на элементе или связи

 

 

submit, reset, link

 

 

 

 

 

DragDrop

windows

Перетаскивание мышью объекта в

 

 

 

окно браузера

 

 

 

Error

image, windows

Ошибка

при

загрузке

документа

 

 

 

или изображения

 

 

Focus

windows, элементы

Окно

или

элемент

формы

 

 

формы

получает фокус

 

 

KeyDown

document, image, link,

Нажатие клавиши клавиатуры

 

 

textarea

 

 

 

 

 

KeyPress

document, image, link,

Удержание

нажатой

клавиши

 

 

textarea

клавиатуры

 

 

 

KeyUp

document, image, link,

Отпускаются клавиши клавиатуры

 

 

textarea

 

 

 

 

 

Load

Тело документа

Загружается документ в браузер

 

MouseDown

document, button, link

Нажатие кнопки мыши

 

 

MouseOut

area, link

Перемещение курсора из области

 

 

 

изображения или связи

 

 

MouseOver

link

Перемещение курсора над связью

 

MouseUp

document, button, link

Отпускается кнопка мыши

 

Move

windows

Пользователь

или

сценарий

 

 

 

перемещает окно

 

 

Reset

form

Нажатие кнопки «Reset» формы

 

Resize

windows

Пользователь

или

сценарий

 

 

 

изменяет размеры окна

 

 

Select

text, textarea

Выбирается поле ввода элемента

 

 

 

формы

 

 

 

 

Submit

form

Нажатие кнопки «Submit» формы

 

Unload

Тело документа

Пользователь закрывает документ

 

51

4.2. Назначение обработчиков событий

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

Например, текстовые и графические ссылки имеют событие onMouseOver, которое происходит при наведении указателя мыши на ссылку. Для этого определяется обработчик событий как параметр дескриптора HTML (в начало имени события добавляется ключевое слово on) и добавляется оператор JavaScript, управляющий событием, в кавычках.

Например, определим дескриптор графической ссылки с

обработчиком событий:

<img src= "risunok.gif " onMouseOver= "HighLight()">

Приведем пример обработки еще одного события Load, которое связано с объектом document и происходит после окончания загрузки Web-страницы (включая все рисунки). Определим его обработчик события в дескрипторе <BODY>, состоящий в отображении сообщения по окончании загрузки страницы:

<BODY onLoad="alert('Загрузка страницы завершена')"> Следует отметить, что JavaScript – однопоточный язык, поэтому

обработчики всегда выполняются последовательно и в общем потоке. Это значит, что при установке обработчиков двух событий, которые возникают на элементе одновременно, например mouseover (мышь появилась над элементом) и mousemove (мышь двигается над элементом), их обработчики будут выполнены последовательно.

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

4.3. Использование обработчиков событий в элементах форм

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

52

4.3.1. Формы на Web-странице

Рассмотрим основные элементы форм ведения данных подробнее.

1) Определение формы: <FORM NAME="Имя_формы" TARGET="Имя_окна"

ACTION="Адрес_URL_расширения_сервера" METHOD=GET или POST onSubmit="Обработчик_события_Submit"> </FORM>

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

Назначение параметра TARGET аналогично назначению этого же параметра в теге <A>. Когда форма используется для передачи запроса расширению CGI сервера Web, то ответ, полученный от сервера, отображается в окне. Имя этого окна задано параметром TARGET. Если ответ должен отображаться в том же окне, что и форма, то параметр TARGET задавать не нужно.

С помощью параметра ACTION указывается адрес URL загрузочного файла программы CGI, а также передаваемые расширению параметры. В том случае, когда форма предназначена для передачи данных расширению сервера Web, параметр ACTION является обязательным. Но если данные, введенные в форме, обрабатываются сценарием JavaScript локально и не передаются серверу Web, этот параметр можно опустить.

Параметр METHOD задает метод передачи данных из формы расширению сервера Web и может принимать значения GET или POST. Если данные из полей формы обрабатываются сценарием JavaScript локально, параметр METHOD задавать не нужно.

Помимо параметров для формы можно определить обработчик события, связанный с кнопкой типа SUBMIT. Такая кнопка предназначена для посылки данных из заполненной формы расширению сервера Web.

2) Элемент формы – Кнопка:

<INPUT TYPE="BUTTON" NAME="Имя кнопки" VALUE="Надпись на кнопке">

53

Пример

<INPUT TYPE="BUTTON" NAME="Color" VALUE="Цвет фона">

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

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

3) Элемент формы – Окно для ввода текста: <TEXTAREA NAME="Имя_окна_ввода текста"

COLS="Ширина_окна" ROWS="Высота_окна"> . . . </TEXTAREA>

Пример

<H3> Окно ввода: <BR>

<TEXTAREA NAME="Moe" ROWS=5 COLS=30> </TEXTAREA>

</H3>

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

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

4) Элемент формы – Раскрывающийся список: <SELECT>

<OPTION VALUE="a"> Пункт 1

54

<OPTION VALUE="b"> Пункт 2

. . .

</SELECT>

Пример

<SELECT>

<OPTION VALUE="a"> Первый <OPTION VALUE="b"> Второй <OPTION VALUE="с"> Третий <OPTION VALUE="d"> Четвертый </SELECT>

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

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

5) Элемент формы – Раскрывающийся список с заданным количеством пунктов, видимых на экране:

<SELECT MULTIPLE NAME="Имя Меню" SIZE="Количество пунктов">

<OPTION VALUE="a"> Пункт 1 <OPTION VALUE="b"> Пункт 2

. . .

</SELECT>

Пример

<SELECT MULTIPLE NAME="Меню" SIZE="2"> <OPTION VALUE="a"> Первый

<OPTION VALUE="b"> Второй <OPTION VALUE="с"> Третий <OPTION VALUE="d"> Четвертый </SELECT>

55

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

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

6) Элемент формы – Строка для ввода текста:

<INPUT TYPE="Text" NAME="Имя строки" SIZE="Длина строки в символах">

Пример

Строка ввода:

<INPUT TYPE="Text" NAME="Строка" SIZE="23">

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

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

7) Элемент формы – Флажок:

<INPUT TYPE="CHECKBOX" NAME="Имя флажка" VALUE="Значение" CHECKED>

С помощью параметра VALUE вы можете определить строку, которая передается расширению сервера при посылке заполненной формы, если переключатель находится во включенном состоянии. Если этот параметр не указан, то по умолчанию посылается строка "on". Сценарий JavaScript также может получить значение параметра

VALUE.

Необязательный параметр CHECKED указывается в том случае, если при начальном отображении формы переключатель должен отображаться во включенном состоянии.

56

Пример

<INPUT TYPE="CHECKBOX" NAME="F1"> JavaScript

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

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

8) Элемент формы – Строка для ввода пароля:

<INPUT TYPE="Password" NAME="Имя строки" SIZE="Длина строки в символах">

Пример

Пароль: <INPUT TYPE="Password" NAME="Р" SIZE="5">

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

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

9) Элемент формы – Переключатель:

<INPUT TYPE="Radio" NAME="Имя" VALUE="Значение" CHECKED>

Все переключатели radio, принадлежащие к одной группе, должны иметь одинаковые имена, определенные параметром NAME. Для того, чтобы расширение сервера Web или сценарий JavaScript, обрабатывающие форму, могли узнать, какой же из переключателей radio группы находится во включенном состоянии, все такие переключатели должны иметь различные значения VALUE. Кроме того, только один из переключателей radio может быть определен с параметром CHECKED.

57

Пример

Производится выбор одного переключателя из группы – в этом случае имена NAME одинаковые (CHECKED – переключатель сразу выбран по умолчанию).

<INPUT TYPE="Radio" NAME="S1" VALUE="Первый">

Первый <BR>

<INPUT TYPE="Radio" NAME="S1" VALUE="Второй"> Второй <BR>

<INPUT TYPE="Radio" NAME="S1" VALUE="Третий" CHECKED> Третий

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

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

Пример

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

<INPUT TYPE="Radio" NAME="S1" VALUE="Первый">

Первый <BR>

<INPUT TYPE="Radio" NAME="S2" VALUE="Второй"> Второй <BR>

<INPUT TYPE="Radio" NAME="S3" VALUE="Третий"> Третий На рис.34 показано, как будет выглядеть результат работы

сценария.

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

58

10) Элемент формы – Кнопка «Отправление формы» и кнопка «Очистка формы»:

<INPUT TYPE="SUBMIT" VALUE="Надпись на кнопке"> –

Кнопка «Отправление формы»

<INPUT TYPE="RESET" VALUE="Надпись на кнопке"> –

Кнопка «Очистка формы»

Пример

<P ALIGN=CENTER>

<TEXTAREA NAME="Text" ROWS=5 COLS=30> </TEXTAREA> <BR>

<INPUT TYPE="SUBMIT" VALUE="Переслать форму"> <INPUT TYPE="RESET" VALUE="Очистить форму">

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

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

4.3.2. Использование обработчиков событий в формах

Обработчики событий в формах используются аналогично тому, как это было описано в п.4.2.

Например, для обработки события сlick на кнопке, можно назначить обработчик onClick, выводящий диалоговое окно с сообщением «Спасибо!»:

<form>

<input type="button" value="Нажми Меня" onClick="alert('Спасибо!')">

</form>

59

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