Клиентский JavaScript. Справочник

         

Безопасность


Получение свойства data события DragDrop требует привилегии UniversalBrowserRead. О безопасности см. книгу Клиентский JavaScript. Руководство.



Безопасность


Отправка формы по URL mailto: или news: требует привилегии UniversalSendMail. О безопасности см. книгу Клиентский JavaScript. Руководство.



Обработчики событий


В этой главе рассматриваются обработчики событий, используемые с объектами клиентского JavaScript для выполнения определённых действий.

Общую информацию об обработчиках событий см. в книге Клиентский JavaScript. Руководство.

В следующей таблице дано резюме по обработчикам событий. Имя обработчика события состоит из имени события с предшествующим "on." Например, обработчик для события focus называется onFocus.


Таблица 3.1 Обработчики Событий
Событие

Обработчик Описание
Abort onAbort Выполняет код JavaScript, когда пользователь прерывает загрузку изображения.

Blur onBlur Выполняет код JavaScript, когда элемент формы теряет фокус ввода или когда окно или фрэйм теряют фокус.

Change onChange Выполняет код JavaScript, когда поля Select, Text или Textarea теряют фокус, а их значения были изменены.

Click onClick Выполняет код JavaScript, когда произведён щелчок по объекту формы.

DblClick onDblClick Выполняет код JavaScript, когда пользователь дважды щёлкнул по элементу формы или по гиперссылке.

DragDrop onDragDrop Выполняет код JavaScript, когда пользователь отпустил (мышью) объект в окне браузера, как при перетаскивании файлов.

Error onError Выполняет код JavaScript, когда загрузка документа или изображения вызвала ошибку.

Focus onFocus Выполняет код JavaScript, когда окно, фрэйм или набор фрэймов получает фокус или когда элемент формы получает фокус ввода.

KeyDown onKeyDown Выполняет код JavaScript, когда пользователь нажимает клавишу клавиатуры.

KeyPress onKeyPress Выполняет код JavaScript, когда пользователь нажимает клавишу клавиатуры и удерживает её в нажатом состоянии.

KeyUp onKeyUp Выполняет код JavaScript, когда пользователь отпускает клавишу клавиатуры.

Load onLoadВыполняет код JavaScript, когда браузер закончил загрузку документа или всех фрэймов тэга FRAMESET.

MouseDown onMouseDown Выполняет код JavaScript, когда пользователь нажал клавишу мыши.

MouseMove onMouseMove Выполняет код JavaScript, когда пользователь перемещает курсор мышью.

MouseOut onMouseOutВыполняет код JavaScript, когда указатель мыши покидает область клиентской карты изображений или ссылки.

MouseOver onMouseOverВыполняет код JavaScript, когда указатель мыши проходит над объектом или областью.

MouseUp onMouseUpВыполняет код JavaScript, когда пользователь отпускает нажатую клавишу мыши.

Move onMove Выполняет код JavaScript, когда пользователь или скрипт перемещают окно или фрэйм.

Reset onResetВыполняет код JavaScript, когда пользователь восстанавливает значения полей формы (щёлкает кнопку Reset).

Resize onResizeВыполняет код JavaScript, когда пользователь или скрипт изменяют размеры окна или фрэйма.

Select onSelect Выполняет код JavaScript, когда пользователь выделяет некоторый текст в поле text или textarea.

Submit onSubmit Выполняет код JavaScript, когда пользователь отправляет форму на сервер.

Unload onUnloadВыполняет код JavaScript, когда пользователь выходит из документа.



Используемые свойства события


СвойствоОписание
typeУказывает тип события.

target Указывает объект, которому событие первоначально было выслано.



Используемые свойства события


Свойство Описание
type Указывает тип события.

target Указывает объект, которому событие первоначально было выслано.



Используемые свойства события


Свойство Описание
type Указывает тип события.

targetУказывает объект, которому событие первоначально было выслано.



Используемые свойства события


СвойствоОписание свойства
type Указывает тип события.

target Указывает объект, которому событие первоначально было выслано.

Когда сделан щелчок по гиперссылке,
layerX, layerY,
pageX, pageY,
screenX, screenY

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

whichПредставляет 1 для щелчка левой клавиши мыши и 3 - для щелчка правой клавиши.

modifiersСодержит список клавиш-модификаторов, нажатых при возникновении события.



Используемые свойства события


Свойство Описание
typeУказывает тип события.

targetУказывает объект, которому событие первоначально было выслано.

layerX, layerY,
pageX, pageY,
screenX, screenY
Представляет местонахождение курсора в момент возникновения события.

whichПредставляет 1 для щелчка левой клавиши мыши и 3 - для щелчка правой клавиши.

modifiers Содержит список клавиш-модификаторов, нажатых при возникновении события.



Используемые свойства события


Свойство Описание
type Указывает тип события.

target Указывает объект, которому событие первоначально было выслано.

data Возвращает массив строк, содержащих URL'ы отпущенных объектов.

modifiers Содержит список клавиш-модификаторов, нажатых при возникновении события.

screenX,
screenY
Представляет местонахождение курсора в момент возникновения события.



Используемые свойства события


Свойство Описание
type Указывает тип события.

target Указывает объект, которому событие первоначально было выслано.



Используемые свойства события


Свойство Описание
type Указывает тип события.

target Указывает объект, которому событие первоначально было выслано.



Используемые свойства события


Свойство Описание
type Указывает тип события.

targetУказывает объект, которому событие первоначально было выслано.

layerX, layerY,
pageX, pageY,
screenX, screenY
Для события поверх окна, представляет местонахождение курсора в момент возникновения события. Для события поверх формы, представляет позицию элемента формы.

whichASCII-значение нажатой клавиши. Для получения реальной буквы, цифры или символа нажатой клавиши используйте метод String.fromCharCode. Для установки этого свойства, когда значение ASCII неизвестно, используйте метод String.charCodeAt.

modifiersСодержит список клавиш-модификаторов, нажатых при возникновении события.



Используемые свойства события


Свойство Описание
type Указывает тип события.

targetУказывает объект, которому событие первоначально было выслано.

layerX, layerY,
pageX, pageY,
screenX, screenY
Для события поверх окна представляет местонахождение курсора в момент возникновения события. Для события поверх формы представляет позицию элемента формы.

whichASCII-значение нажатой клавиши. Для получения реальной буквы, цифры или символа нажатой клавиши используйте метод String.fromCharCode. Для установки этого свойства, когда значение ASCII неизвестно, используйте метод String.charCodeAt.

modifiersСодержит список клавиш-модификаторов, нажатых при возникновении события.



Используемые свойства события


Свойство Описание
type Указывает тип события.

targetУказывает объект, которому событие первоначально было выслано.

layerX, layerY,
pageX, pageY,
screenX, screenY
Для события поверх окна представляет местонахождение курсора в момент возникновения события. Для события поверх формы представляет позицию элемента формы.

whichASCII-значение нажатой клавиши. Для получения реальной буквы, цифры или символа нажатой клавиши используйте метод String.fromCharCode. Для установки этого свойства, когда значение ASCII неизвестно, используйте метод String.charCodeAt.

modifiersСодержит список клавиш-модификаторов, нажатых при возникновении события.



Используемые свойства события


Свойство Описание
type Указывает тип события.

targetУказывает объект, которому событие первоначально было выслано.

width, height Для события поверх окна, но не поверх слоя/layer, эти свойства представляют ширину и высоту окна.



Используемые свойства события


Свойство Описание
type Указывает тип события.

targetУказывает объект, которому событие первоначально было выслано.

layerX, layerY,
pageX, pageY,
screenX, screenY
Местонахождение курсора в момент возникновения события MouseDown.

whichПредставляет 1 для щелчка левой клавиши мыши и 3 - для щелчка правой клавиши.

modifiersСодержит список клавиш-модификаторов, нажатых в момент возникновения события MouseDown.



Используемые свойства события


Свойство Описание
type Указывает тип события.

targetУказывает объект, которому событие первоначально было выслано.

layerX, layerY,
pageX, pageY,
screenX, screenY
Местонахождение курсора в момент возникновения события MouseMove.



Используемые свойства события


Свойство Описание
type Указывает тип события.

targetУказывает объект, которому событие первоначально было выслано.

layerX, layerY,
pageX, pageY,
screenX, screenY
Местонахождение курсора в момент возникновения события MouseOut.



Используемые свойства события


СвойствоОписание
type Указывает тип события.

targetУказывает объект, которому событие первоначально было выслано.

layerX, layerY,
pageX, pageY,
screenX, screenY
Местонахождение курсора в момент возникновения события MouseOver.



Используемые свойства события


Свойство Описание
type Указывает тип события.

targetУказывает объект, которому событие первоначально было выслано.

layerX, layerY,
pageX, pageY,
screenX, screenY
Местонахождение курсора в момент возникновения события MouseUp.

whichПредставляет 1 для левой клавиши и 3 - для правой клавиши мыши.

modifiersСодержит список клавиш-модификаторов, нажатых в момент возникновения события MouseUp.



Используемые свойства события


Свойство Описание
type Указывает тип события.

targetУказывает объект, которому событие первоначально было выслано.

screenX,
screenY
Позиция верхнего левого угла окна или фрэйма.



Используемые свойства события


Свойство Описание
type Указывает тип события.

targetУказывает объект, которому событие первоначально было выслано.



Используемые свойства события


Свойство Описание
type Указывает тип события.

target Указывает объект, которому событие первоначально было выслано.

width, height Ширина и высота окна или фрэйма.



Используемые свойства события


Свойство Описание
type Указывает тип события.

target Указывает объект, которому событие первоначально было выслано.



Используемые свойства события


Свойство Описание
type Указывает тип события.

targetУказывает объект, которому событие первоначально было выслано.



Используемые свойства события


Свойство Описание
type Указывает тип события.

targetУказывает объект, которому событие первоначально было выслано.



Onabort


Выполняет код JavaScript, когда возникает событие abort; то есть, когда пользователь прерывает загрузку изображения (например, щёлкая ссылку или кнопку Stop).

Обработчик события для Image
Реализован вJavaScript 1.1



Onblur


Выполняет код JavaScript, когда возникает событие blur; то есть, если элемент формы теряет фокус или если окно или фрэйм теряют фокус.

Обработчик события для Button, Checkbox, FileUpload, Layer, Password, Radio, Reset, Select, Submit, Text, Textarea, window

Реализован вJavaScript 1.0

JavaScript 1.1: обработчик события для объектов Button, Checkbox, FileUpload, Frame, Password, Radio, Reset, Submit и window



Onchange


Выполняет код JavaScript, когда возникает событие change; то есть, если поле Select, Text или Textarea теряет фокус, а его значение было изменено.

Обработчик события для FileUpload, Select, Text, Textarea

Реализован в JavaScript 1.0: обработчик события для элементов Select, Text и Textarea

JavaScript 1.1: добавлен обработчик для FileUpload



Onclick


Выполняет код JavaScript, когда возникает событие click; то есть, когда сделан щелчок по объекту или форме. (Событие click является комбинацией событий MouseDown и MouseUp).

Обработчик события для Button, document, Checkbox, Link, Radio, Reset, Submit
Реализован в JavaScript 1.0

JavaScript 1.1: добавлена возможность возвращать false для отмены акции, ассоциированной с событием click.



Ondblclick


Выполняет код JavaScript при возникновении события DblClick; то есть, когда пользователь дважды щёлкнет элемент формы или гиперссылку.

Обработчик события для document, Link

Реализован вJavaScript 1.2



Ondragdrop


Выполняет код JavaScript при возникновении события DragDrop; то есть, если пользователь отпустит объект в окне браузера, как при перетаскивании файлов.

Обработчик события для window

Реализован вJavaScript 1.2



Onerror


Выполняет код JavaScript при возникновении события error/ошибки; то есть, когда при загрузке документа или изображения возникает ошибка.

Обработчик события для Image, window

Реализован вJavaScript 1.1



Onfocus


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

Обработчик события для Button, Checkbox, FileUpload, Layer, Password, Radio, Reset, Select, Submit, Text, Textarea, window

Реализован в JavaScript 1.0

JavaScript 1.1: обработчик для объектов Button, Checkbox, FileUpload, Frame, Password, Radio, Reset, Submit и window

JavaScript 1.2: обработчик для Layer



Onkeydown


Выполняет код JavaScript при возникновении события KeyDown; то есть, если пользователь нажимает клавишу на клавиатуре.

Обработчик события для document, Image, Link, Textarea

Реализован вJavaScript 1.2



Onkeypress


Выполняет код JavaScript при возникновении события KeyPress; то есть, если пользователь удерживает клавишу нажатой.

Обработчик события для document, Image, Link, Textarea

Реализован вJavaScript 1.2



Onkeyup


Выполняет код JavaScript при возникновении события KeyUp; то есть, если пользователь отпустил нажатую клавишу.

Обработчик события для document, Image, Link, Textarea

Реализован вJavaScript 1.2



Onload


Выполняет код JavaScript при возникновении события load; то есть, когда браузер закончил загрузку окна или всех фрэймов тэга FRAMESET.

Обработчик события для Image, Layer, window

Реализован вJavaScript 1.0

JavaScript 1.1: обработчик для Image



Onmousedown


Выполняет код JavaScript, когда возникает событие MouseDown; то есть, когда пользователь нажимает клавишу мыши.

Обработчик события для Button, document, Link
Реализован вJavaScript 1.2



Onmousemove


Выполняет код JavaScript, когда возникает событие MouseMove; то есть, когда пользователь перемещает курсор.

Обработчик события для Объект отсутствует.

Реализован вJavaScript 1.2



Onmouseout


Выполняет код JavaScript, когда возникает событие MouseOut; то есть каждый раз выходе указателя мыши за пределы области (в клиентской карте изображений) или гиперссылки.

Обработчик события для Layer, Link

Реализован вJavaScript 1.1



Onmouseover


Выполняет код JavaScript, когда возникает событие MouseOver; то есть всякий раз при проведении указателя мыши над объектом или областью.

Обработчик события для Layer, Link

Реализован в JavaScript 1.0

JavaScript 1.1: обработчик для Area



Onmouseup


Выполняет код JavaScript, когда возникает событие MouseUp; то есть, когда пользователь отпускает нажатую клавишу мыши.

Обработчик события для Button, document, Link

Реализован вJavaScript 1.2



Onmove


Выполняет код JavaScript, когда возникает событие перемещения; то есть, если пользователь или скрипт перемещает окно или фрэйм.

Обработчик события для window

Реализован вJavaScript 1.2



Onreset


Выполняет код JavaScript, когда возникает событие reset; то есть, когда пользователь восстанавливает значения элементов формы (щёлкая кнопку Reset).

Обработчик события для Form
Реализован вJavaScript 1.1



Onresize


Выполняет код JavaScript, когда возникает событие resize; то есть, когда пользователь или скрипт изменили размер окна или фрэйма.

Обработчик события для window

Реализован вJavaScript 1.2



Onselect


Выполняет код JavaScript, когда возникает событие select; то есть, когда пользователь выделяет некоторый текст в поле text или textarea.

Обработчик события для Text, Textarea

Реализован вJavaScript 1.0



Onsubmit


Выполняет код JavaScript, когда возникает событие submit; то есть, когда пользователь отправляет форму на сервер.

Обработчик события для Form
Реализован вJavaScript 1.0



Onunload


Выполняет код JavaScript, когда возникает unload; то есть, когда пользователь выходит из документа.

Обработчик события для window

Реализован вJavaScript 1.0



Событие blur может быть результатом


Событие blur может быть результатом вызова метода window.blur, или щелчка пользователя мышью на другом объекте или окне или перехода с помощью клавиш табуляции на клавиатуре.
Для окон, фрэймов и наборов фрэймов onBlur специфицирует код JavaScript, выполняемый при потере окном фокуса.
Обработчик onBlur фрэйма переопределяет обработчик onBlur тэга BODY документа, загруженного во фрэйм.
ПРИМЕЧАНИЕ: В JavaScript 1.1 на некоторых платформах - помещение обработчика onBlur в тэг FRAMESET не даёт никакого эффекта.


Используйте onChange для проверки данных


Используйте onChange для проверки данных после их изменения пользователем.

и кнопок submit обработчик onClick


Для переключателей/checkboxes, гиперссылок, радио-кнопок, кнопок reset и кнопок submit обработчик onClick может вернуть false для отмены акции, нормально ассоциированной с событием click.
Например, следующий код создаёт ссылку, которая при щелчке по ней выводит диалог confirm. Если пользователь щёлкает ссылку, а затем выбирает cancel, страница, специфицированная ссылкой, не загружается.
<A HREF = "http://home.netscape.com/"
onClick="return confirm('Load Netscape home page?')">Netscape</A> Если обработчик возвращает false, акция по умолчанию объекта отменяется так:
Кнопки -- нет акции по умолчанию; ничего не отменяется. Радио-кнопки и переключатели -- ничего не устанавливается. Кнопки submit -- форма не отправляется. Кнопки reset -- значения формы не восстанавливаются. ПРИМЕЧАНИЕ: В JavaScript 1.1 на некоторых платформах возвращение false обработчиком onClick для кнопок reset не даёт эффекта.

Событие DragDrop возникает тогда, когда


Событие DragDrop возникает тогда, когда системный объект (файл, ярлык и т.п.) отпускается в окне браузера с использование системного механизма drag and drop. Нормальной реакцией браузера будет попытка загрузить объект в окно браузера. Если обработчик для события DragDrop возвратит true, браузер загружает объект нормальным образом. Если обработчик возвратит false, drag and drop отменяется.

Событие error возникает только тогда,


Событие error возникает только тогда, когда возникает ошибка синтаксиса JavaScript или ошибка времени выполнения, а не при появлении ошибки браузера. Например, если Вы попытаетесь установить window.location.href='notThere.html', а файл notThere.html не существует, результирующим сообщением об ошибке будет сообщение браузера; следовательно, onError не будет перехватывать это сообщение. Однако событие error будет включаться неверным URL в тэге IMG или неверными данными изображения.
window.onerror применяется только к ошибкам, которые возникают в окне, содержащем window.onerror, но не к ошибкам в других окнах.
onError может иметь следующие значения:
null для подавления всех диалогов JavaScript об ошибках. Установка window.onerror в null означает, что Ваши пользователи не увидят ошибок JavaScript, вызванных Вашим кодом. Имя функции, обрабатывающей ошибки (аргументами являются текст сообщения, URL и номер строки с ошибкой). Для подавления стандартного диалога JavaScript об ошибках эта функция обязана возвращать true. См. Пример 3 ниже. Переменная или свойство, содержащее null или верную ссылку на функцию. Если Вы пишете функцию-обработчик ошибок, у Вас есть три опции для сообщения об ошибках:
Отслеживать ошибки, но дать возможность сообщать о них через стандартный диалог JavaScript (использовать функцию обработки ошибок, которая возвращает false или не возвращает значение). Самостоятельно сообщать об ошибках и отключить стандартный диалог (использовать функцию обработки ошибок, возвращающую true). Отключить все сообщения об ошибках (установить null в обработчик onError).

Событие focus может быть результатом


Событие focus может быть результатом работы метода focus, или щелчка мышью по объекту или окну, или при переходе с помощью клавиш табуляции. Выделение в поле даст событие select, а не событие focus. onFocus выполняет код JavaScript при возникновении события focus.
Обработчик onFocus фрэйма переопределяет обработчик onFocus тэга BODY документа, загруженного в этот фрэйм.
Обратите внимание, что помещение диалога alert в обработчик onFocus приводит к рекурсии диалогов alert: если Вы нажимаете OK для выключения alert, окно получает фокус снова и производит новое событие focus.
ПРИМЕЧАНИЕ: В JavaScript 1.1 на некоторых платформах размещение обработчика onFocus в тэге FRAMESET не даст эффекта.