Добавляем...


События и их обработка
    Браузеры могут вызывать JavaScript в ответ на действия пользователя в рамках страницы Web. Например, можно указать программный код JavaScript, который должен запускаться каждый раз, когда пользователь щелкает на ссылке или изменяет поле формы. Действия, на которые может ответить JavaScript, называются событиями. События — это нити, связывающие пользователя с Web-страницей; они дают страницам возможность стать интерактивными, т.е. отвечають на действия пользователя. Модель событий определяет возможности обработки событий и то, как они связаны с различными объектами документа и браузера.

    Подобно многим другим аспектам JavaScript, модели событий главных браузеров прогнозируемо развиваются в разных и несовместимых направлениях. До четвертых версий браузеров Internet Explorer и Netscape предлагалась поддержка только примитивных событий. В четвертом поколении этих браузеров добавлен ряд новых событий и новые, более совершенные возможности контроля программиста над многими составляющими модели событий. Однако из-за расхождения указанных моделей событий консорциум W3C снова вступил в борьбу, включив в DOM2 стандартную модель событий. Эта модель является расширением DOM, обеспечивающим поддержку событий и объединяющим две несовместимые модели с целью создания мощного и надежного окружения для обработки событий. Эта глава начинается с обсуждения базовой модели событий и выяснения того, как эта модель согласуется с (X)HTML и JavaScript. Затем рассматриваются модели событий браузеров поколения 4.x и, наконец, обсуждается модель событий DOM2.
События и их обработка
Событие — это происходящее внутри браузера регистрируемое действие, на которое сценарий может ответить. Событие происходит, например, когда пользователь щелкает кнопкой мыши, отображает форму или просто перемещает указатель мыши над объектом страницы. Обработчик событий — это программный код JavaScript, связанный с определенной частью документа и конкретным событием. Обработчики событий называют также программами обработки событий. Программа обработки события выполняется, когда соответствующее событие происходит в той части документа, с которой это событие связано. Например, обработчик событий, связанный с кнопкой, может открывать всплывающее окно при щелчке на кнопке, а обработчик событий, связанный с полем формы, может использоваться для проверки вводимых пользователем данных каждый раз, когда изменяется значение поля формы.

Большинство событий имеет информативные имена. Не слишком сложно догадаться, каким действиям пользователя соответствуют события click (щелчок), submit (подача запроса) или mouseover (размещение указателя мыши над объектом). Некоторые события имеют менее очевидные названия, например blur соответствует тому, что поле или другой объект теряют фокус ввода, т.е. становятся неактивными. Обработчику, соответствующему конкретному событию, назначается имя этого события с добавлением префикса "on". Например, обработчик события click называется onclick.

Набор событий не ограничивается только основными действиями пользователя, связанными с документом, наподобие click и mouseover. Так, большинство браузеров поддерживает, например, события resize и load, которые связаны с такими явлениями, как изменение размеров окна или загрузка документа из сети или с диска.

Браузеры обеспечивают детальную информацию о происходящем событии с помощью объекта Event, который становится доступным для программ обработки событий. Объект Event содержит контекстную информацию о событии, например точные координаты точки на экране, где был выполнен щелчок (событие click), и о том, была ли при этом нажата клавиша SHIFT.

События, являющиеся результатом действий пользователя, обычно имеют целевой объект — элемент (X)HTML в рамках которого происходит событие. Например, целевым объектом события click будет элемент типа <img> или <p>, на котором выполняется щелчок. Программы обработки событий, таким образом, привязываются к конкретным элементам. Когда событие, которое должно быть обработано, происходит в рамках элемента, к которому это событие привязано, выполняется программа обработки события.

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

  • использование традиционных атрибутов (X)HTML для программ обработки событий, например, <form onsubmit="мояФункция();">;
  • использование сценария для установки программ обработки событий, связанных с объектом, например document.getElementById{"мояФорма") . onsubmit = мояФункция;
  • использование фирменных методов, например attachEvent () в Internet Explorer;
  • использование методов DOM2 для установки приемников событий с помощью методаaddEventListener() узла.
Каждый из указанных подходов имеет свои "за" и "против", что будет подробно обсуждаться в следующих разделах.
Точно так же существует несколько вариантов вызова событии:
  • неявный вызов браузером в ответ на действия, инициированные пользователем или средствами JavaScript;
  • явный вызов средствами JavaScript с помощью методов DOM1, например document.forms[0].submit();
  • явный вызов с помощью фирменных методов, например fireEvent () в Internet Explorer;
  • явный вызов средствами JavaScript с помощью метода DOM2 dispatch-Event ().


добавить комментарий
(без перезагрузки и регистрации)


10 случайных разделов

Что ищем на сайте ?


Примеры кода на сайте







@ 2008-2011 Amber
При использовании материалов ссылка на сайт обязательна
Яндекс.Метрика