Какие бы сложные действия ни позволял реализовать JavaScript, он не был бы по-настоящему полезным инструментом, если бы в нём отсутствовали средства для организации интерактивного взаимодействия. Популярность JavaScript во многом обусловлена именно тем, что написанный на нём сценарий может реагировать на действия пользователя и другие внешние события. Каждое из событий связано с тем или иным объектом: формой, гипертекстовой ссылкой или даже с окном, содержащим текущий документ.
В качестве примеров внешних событий, на которые могут реагировать объекты JavaScript, можно привести следующие.
· Окончание загрузки документа в окно (или окончание загрузки документов во все фреймы окна). Это событие связано с объектом Window.
· Щелчок мышью на объекте. Может быть связано с интерактивным элементом формы или с гипертекстовой ссылкой.
· Получение объектом фокуса ввода. Это событие может быть связано с объектами типа Text, Password и с другими интерактивными элементами.
· Передача на сервер данных, введённых пользователем с помощью интерактивных элементов. Связывается с формой.
Обработка события производится с помощью специально предназначенного для этого фрагмента кода, называемого обработчиком события. Для каждого события JavaScript предоставляет свой обработчик. Однако при построении сценария вы можете создать собственный обработчик события и использовать его вместо обработчика, заданного по умолчанию.
Имя обработчика определяет, какое событие он должен обрабатывать. Так, для того чтобы сценарий нужным образом отреагировал на щелчок мышью, используется обработчик с именем onClick, для обработки события, заключающегося в получении фокуса ввода, — обработчик onFocus, а после окончания загрузки документа вступает в действие обработчик onLoad.
Иногда события называют именами их обработчиков.
| |
Для того чтобы указать интерпретатору JavaScript на то, что обработкой события должен заниматься обработчик, созданный вами, надо включить в HTML-дескриптор следующее выражение:
имя_обработчика=”команды_обработчика”
Это выражение включается в дескриптор, формирующий объект, с которым связано событие. Если вы захотите самостоятельно обрабатывать событие, заключающееся в получении фокуса полем ввода, дескриптор, описывающий этот интерактивный элемент, должен иметь приблизительно следующий вид:
<INPUT TYPE=”TEXT” NAME=”Inform” onFocus=”handle ();”>
Как видите, имя обработчика является одним из атрибутов HTML-дескриптора, а команды, предназначенные для обработки события, выступают в роли значения этого атрибута. В данном случае обработка события производится в теле функции handle (). Однако для обработки совсем не обязательно вызывать ту или иную функцию. Обработчиком может быть любая последовательность команд JavaScript.