Отправляет email-рассылки с помощью сервиса Sendsay

Программирование на JavaScript

  Все выпуски  

Азы и секреты программирования на JavaScript.


Служба Рассылок Subscribe.Ru
Азы и секреты программирования на JavaScript

Ссылка на архив предыдущих выпусков: http://www.b-soft.ru/scripting/
Статистика рассылки: http://subscribe.ru/stat/comp.soft.prog.javascript/
Форум по языкам сценариев: http://www.b-soft.ru/phorum/

Сценарий и обработка событий:

Обработка событий в языке JavaScript

В JavaScript (или JScript, версии JavaScript фирмы Microsoft) есть две особенности: первая - что в нем поддерживаются только функции, вторая - что этот язык понятен для всех броузеров. Самый привычный способ передачи события элементу - это объявление названия функции в теге элемента. Заметим, что нам нужно записать не просто "MyClickCode", а "MyClickCode()" для соответствия синтаксической конструкции JavaScript. В HTML документе это будет выглядеть так:

<H2 ONCLICK="MyClickCode()">
Текст, реагирующий на событие
</H2>
 ...
<SCRIPT LANGUAGE=JAVASCRIPT>
function MyClickCode() {
 alert('Ты щелкнул Текст!');
}
</SCRIPT>

Это хорошо для работы с отдельными элементами, а как поступить при необходимости обработки событий целым документом? В этом случае указатели на обработчики событий можно поместить в тег <BODY>:
<BODY OnMouseMove="MyMouseMoveCode()" OnClick="MyClickCode()>

Кроме того, можно подключить код обработки внутри тега элемента. При этом используется такая конструкция языка JScript:

<H2 LANGUAGE=JSCRIPT ONCLICK="alert('Ты щелкнул Текст!');">
Текст, реагирующий на событие
</H2>

Так как JSCRIPT является языком броузера, определенным по умолчанию, можно опустить атрибут "LANGUAGE=JSCRIPT", сделав конструкцию более компактной:

<H2 ONCLICK="alert('Ты щелкнул Текст!');">
Текст, реагирующий на событие
</H2>
И, наконец, можно создать отдельные секции <SCRIPT> для каждого события, которое нам нужно обработать:
<H2 ID=MyHeading>Текст, реагирующий на событие</H2>
 ...
<SCRIPT LANGUAGE=JAVASCRIPT FOR=MyHeading EVENT=ONCLICK>
 alert('Ты щелкнул Текст!');
</SCRIPT>

Обработка событий, связанных с окнами, в языке JavaScript.

Мы рассмотрели, как размещать объявления об обработке событий, таких, как onmousemove в теге документа <BODY> для обеспечения реакции на событие, произошедшее на уровне объекта document. Другая ситуация - обработка события на уроне window. В Internet Explorer можно поместить такие инструкции в тег открытия <HTML>:

<HTML ONMOUSEMOVE="MyMouseMoveCode()"
ONCLICK="MyClickCode()">
 ...
</HTML>

Существует еще один прием обозначения обрабатывающей событие функции в строке с идентификатором элемента и события. В этом случае название события и имя элемента разделяют точкой. Но при этом надо иметь в виду, что эти методы не являются общепринятыми для обработки событий. Просто они работают, потому что сами функции заданы в свойствах объекта element:

<H2 ID=MyHeading>Текст, реагирующий на событие</H2>
 ...
<SCRIPT LANGUAGE=JAVASCRIPT>
function MyHeading.onclick() {
 alert('Ты щелкнул Текст!');
}
</SCRIPT>

Этим методом пользуются для обработки событий, связанных с основными объектами броузера - document и window:

<SCRIPT LANGUAGE=JAVASCRIPT>
function window.onload() {
 alert('Загрузка страницы завершена.');
}
</SCRIPT>

Отмена действия события.

Некоторые события, такие как onsubmit, позволяют управлять тем, как броузер поведет себя в ответ на них, возвращая контрольное значение. Рассмотрим пример с формой, содержащей единственное текстовое поле Email, и кнопку Submit (Отправка):

<FORM ID=MyForm ONSUBMIT="return CheckAddress()"
 ACTION="http://www.some-web.com/file.cgi">
  <INPUT TYPE=TEXT ID=Email>
  <INPUT TYPE=SUBMIT>
</FORM>

<SCRIPT LANGUAGE=JAVASCRIPT>
function CheckAddress() {
 strAddress = document.forms["MyForm"].elements["Email"].value;
 if (strAddress.indexOf("@") != -1) // содержит символ "@"
  return true
 else
 }
   alert('Проверьте правильность e-mail адреса!');
   return false
 }
}
</SCRIPT>

Здесь для поиска символа @ в строке, введенной пользователем в форме, используется функция "indexOf()". Если в строке нет такого символа, функция возвратит значение -1. В этом случае подразумевается, что это не может быть корректный e-mail. Об этом выдается сообщение, и отправка отменяется передачей значения False. Нами было использовано ключевое слово return в атрибуте элемента ONSUBMIT, так что результат возвращается в ту часть броузера, которая занимается отправкой.

В приведенном примере видно, как используется броузерная модель для получения текста из текстового поля. Искомая строка является свойством value элемента Email. Эта форма - часть коллекции elements формы MyForm, хранящейся в коллекции forms объекта document.

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


Ссылка на архив предыдущих выпусков: http://www.b-soft.ru/scripting/
Статистика рассылки: http://subscribe.ru/stat/comp.soft.prog.javascript/
Форум по языкам сценариев: http://www.b-soft.ru/phorum/
Автор и ведущий рассылки И. Балезин
Материалы для Web-мастера.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное