О спецификации HTML 4.0

Внутренние события


Примечание. Сообщаем авторам документов HTML, что в области внутренних событий (например, в привязке скриптов к событиям) весьма вероятны изменения. Работа в этой области ведется членами рабочей группы по объектной модели документов W3C (W3C Document Object Model Working Group) (более подробную информацию можно найти на Web-сайте W3C по адресу ).

Определения атрибутов

onload

=

Событие onload происходит, когда агент пользователя заканчивает загружать окно или все фреймы элемента . Этот атрибут может использоваться в элементах и .

onunload

=

Событие onunload происходит, когда агент пользователя удаляет документиз окна или фрейма. Этот атрибут может использоваться в элементах и .

onclick

=

Событие onclick происходит при однократном щелчке кнопки указующего устройства на элементе. Этот атрибут может использоваться с большинством элементов.

ondblclick

=



Событие ondblclick происходит при двойном щелчке клавиши указующего устройства на элементе. Этот атрибут может использоваться с большинством элементов.

onmousedown

=

Событие onmousedown происходит при нажатии кнопки указующего устройства на элементе. Этот атрибут может использоваться с большинством элементов.

onmouseup

=

Событие onmouseup происходит при отпускании кнопки указующего устройства на элементе. Этот атрибут может использоваться с большинством элементов.

onmouseover

=

Событие onmouseover происходит при перемещении указующего устройства на элемент. Этот атрибут может использоваться с большинством элементов.

onmousemove

=

Событие onmousemove происходит при перемещении указующего устройства, когда оно находится на элементе. Этот атрибут может использоваться с большинством элементов.

onmouseout

=

Событие onmouseout происходит при перемещении указующего устройства за пределы элемента. Этот атрибут может использоваться с большинством элементов.

onfocus

=

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


onblur

=

Событие onblur происходит при переходе фокуса с этого элемента с помощью указующего устройства или последовательности перехода. Оно может использоваться с теми же элементами, что и onfocus.

onkeypress

=

Событие onkeypress происходит при нажатии и отпускании клавиши на элементе. Этот атрибут может использоваться с большинством элементов.

onkeydown

=

Событие onkeydown происходит при нажатии клавиши на элементе. Этот атрибут может использоваться с большинством элементов.

onkeyup

=

Событие onkeyup происходит при отпускании клавиши на элементе. Этот атрибут может использоваться с большинством элементов.

onsubmit

=

Событие onsubmit происходит при отправке формы. Оно используется только в элементе .

onreset

=

Событие onreset происходит при сбросе формы. Оно используется только в элементе .

onselect

=

Событие onselect происходит при выделении пользователем некоторого текста в текстовом поле. Этот атрибут может использоваться с элементами и .

onchange

=

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

Действие можно связать с определенным рядом событий, происходящих при взаимодействии пользователя с агентом. Значением каждого из перечисленных выше "внутренних событий" является скрипт. Этот скрипт выполняется, если это событие происходит для этого элемента. зависит от языка скрипта.

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

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

В следующем примере показан возможное поведение управляющего элемента и интерфейса пользователя в зависимости то внутренних событий.

В этом примере userName является обязательным текстовым полем. Если пользователь не заполняет это поле, событие onblur вызывает функцию JavaScript для проверки значения поля userName.



<INPUT NAME="userName" onblur="validUserName(this.value)">

Вот еще один пример JavaScript:

<INPUT NAME="num" onchange="if (!checkNum(this.value, 1, 10)) {this.focus();this.select();} else {thanks()}" VALUE="0">

Вот пример обработчика событий для текстового поля на языке VBScript:

<INPUT name="edit1" size="50"> <SCRIPT type="text/vbscript"> Sub edit1_changed() If edit1.value = "abc" Then button1.enabled = True Else button1.enabled = False End If End Sub </SCRIPT>

Вот тот же пример с использованием Tcl:

<INPUT name="edit1" size="50"> <SCRIPT type="text/tcl"> proc edit1_changed {} { if {[edit value] == abc} { button1 enable 1 } else { button1 enable 0 } } edit1 onChange edit1_changed </SCRIPT>

Вот пример привязки события внутри скрипта на языке JavaScript. Для начала простой обработчик щелчка мыши:

<BUTTON type="button" name="mybutton" value="10"> <SCRIPT type="text/javascript"> function my_onclick() { . . . } document.form.mybutton.onclick = my_onclick </SCRIPT> </BUTTON>

Вот более интересный обработчик окна:

<SCRIPT type="text/javascript"> function my_onload() { . . . }

var win = window.open("some/other/URI") if (win) win.onload = my_onload </SCRIPT>

На языке Tcl это выглядит следующим образом:

<SCRIPT type="text/tcl"> proc my_onload {} { . . . } set win [window open "some/other/URI"] if {$win != ""} { $win onload my_onload } </SCRIPT>

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


Содержание раздела