Чтобы увидеть, для чего это может пригодиться, давайте рассмотрим следующий пример:
<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'>'Кликните' по этой ссылке.</a>
</body>
</html>
Как видно, мы не указываем программы обработки событий в тэге <a>. Вместо этого мы пишем
window.captureEvents(Event.CLICK);
с тем, чтобы перехватить событие
Заметим, что в
window.captureEvents(Event.CLICK | Event.MOVE);
Помимо этого в функции
Если теперь в тэге
function handle(e) {
alert('Объект window перехватывает это событие!');
window.routeEvent(e);
return true;
}
то компьютер будет проверять, определены ли другие программы обработки событий для данного объекта. Переменная
Кроме того, Вы можете непосредственно послать сигнал о событии какому-либо объекту. Для этого Вы можете воспользоваться методом
<html>
<script language='JavaScript'>
window.captureEvents(Event.CLICK);
window.onclick= handle;
function handle(e) {
document.links[1].handleEvent(e);
}
</script>
<a href='test.htm'>'Кликните' по этой ссылке</a><br>
<a href='test.htm'
onClick='alert('Обработчик событий для второй ссылки!);'>Вторая ссылка</a>
</html>
Все сигналы о событиях Click, посылаются на обработку по второй ссылке — даже если Вы вовсе и не щелкнули ни по одной из ссылок!
Следующий скрипт демонстрирует, как Ваш скрипт может реагировать на сигналы о нажатии клавиш. Нажмите на какую-либо клавишу и посмотрите, как работает этот скрипт.
<html>
<script language='JavaScript'>
window.captureEvents(Event.KEYPRESS);
window.onkeypress= pressed;
function pressed(e) {
alert('Key pressed! ASCII-value: ' + e.which);
}
</script>
</html>
Часть 12: Drag & Drop
Что такое drag & drop?
С помощью новой модели событий в языке JavaScript, 1.2 и механизма слоев мы можем реализовать на нашей web-странице схему drag & drop ('перетащил и оставил'). Для этого Вам понадобится по крайней мере Netscape Navigator 4.0, поскольку мы будем пользоваться особенностями языка JavaScript 1.2.
Что такое drag & drop? Например, некоторые операционные системы (такие как Win95/NT или MacOS) позволяют Вам стирать файлы, просто перетаскивая их в мусорную карзину. Иными словами, Вы щелкаете клавишей мыши над изображением файла, перетаскиваете его (то есть держите клавишу нажатой и просто двигаете мышь) — drag — в мусорную карзину, а затем отпускаете — drop — его там.
Механизм drag & drop, который мы хотим здесь реализовать, ограничивается web-страницей. Поэтому Вы не можете использовать представленный здесь код, чтобы переносить объекты с HTML-страницы на жесткий диск вашего компьютера или другие подобные действия. (Начиная с версии 4.0 браузера Netscape Navigator ваш скрипт может реагировать на событие с названием
Посмотрите пример, который мы будем рассматривать в этой главе. После того, как откроется страница, Вы можете, нажав клавишу мыши, перетаскивать различные объекты:
Также можно рассмотреть пример, предоставленный компанией Netscape. Найти его Вы сможете по адресу: http://home.netscape.com/comprod/products/communicator/user_age