JavaScript для мага


Перехват события


 

Одна из важных особенностей языка - перехват события. Если кто-то, к примеру, щелкает на кнопке, то вызывается программа обработки события onClick, соответствующая этой кнопке. С помощью обработки событий Вы можете добиться того, чтобы объект, соответсвующий вашему окну, документу или слою, перехватывал и обрабатывал событие еще до того, как для этой цели объектом указанной кнопки будет вызван обработчик событий. Точно так же объект вашего окна, документа или слоя может обрабатывать сигнал о событии еще до того, как он достигает своего обычного адресата.

Чтобы увидеть, для чего это может пригодиться, давайте рассмотрим следующий пример:

 

<html>

<head>

<script language="JavaScript">

 

window.captureEvents(Event.CLICK);

 

window.onclick= handle;

 

function handle(e) {

  alert("Объект window перехватывает это событие!");

  return true; // т.е. проследить ссылку

}

 

</script>

</head>

<body>

<a href="test.htm">Click on this link</a>

</body>

</html>

 

(online-версия позволит Вам проверить этот скрипт немедленно)

 

Как видно, мы не указываем программы обработки событий в тэге <a>. Вместо этого мы пишем

 

window.captureEvents(Event.CLICK);

 

с тем, чтобы перехватить событие Click объектом window. Обычно объект window не работает с событием Click. Однако, перехватив, мы затем его переадресуем в объект window. Заметим, что в Event.CLICK фрагмент CLICK должен писаться заглавными буквами. Если же Вы хотите перехватывать несколько событий, то Вам следует отделить их друг от друга символами |. Например:

 

window.captureEvents(Event.CLICK | Event.MOVE);

 

Помимо этого в функции handle(), назначенной нами на роль обработчика событий, мы пользуемся инструкцией return true;. В действительности это означает, что браузер должен обработать и саму ссылку, после того, как завершится выполнение функции handle(). Если же Вы напишете вместо этого return false;, то на этом все и закончится.




Начало  Назад  Вперед



Книжный магазин