Читать «Введение в JavaScript для Мага» онлайн - страница 41

Стефан Кох

К тому же я поместил все команды в тэг <layer>. Благодаря этому мы получаем в сообщении координаты относительно данного слоя, т. е. в нашем случае относительно самого изображения. В противном же случае мы получили бы координаты относительно окна браузера.

(инструкция return false; используется здесь для того, чтобы браузер обрабатывал далее данную ссылку)

Объект Event получил следующие свойства (их мы рассмотрим в следующих примерах):

Свойство — Описание

data — Массив адресов URL оставленных объектов, когда происходит событие DragDrop.

layerX — Горизонтальное положение курсора (в пикселах) относительно слоя. В комбинации с событием Resize это свойство представляет ширину окна браузера.

layerY — Вертикальное положение курсора (в пикселах) относительно слоя. В комбинации с событием Resize это свойство представляет высоту окна браузера.

modifiers — Строка, задающая ключи модификатора — ALT_MASK, CONTROL_MASK, META_MASK или SHIFT_MASK

pageX — Горизонтальное положение курсора (в пикселах) относительно окна браузера.

pageY — Вертикальное положение курсора (в пикселах) относительно окна браузера.

screenX — Горизонтальное положение курсора (в пикселах) относительно экрана.

screenY — Вертикальное положение курсора (в пикселах) относительно экрана.

target — Строка, представляющая объект, которому исходно было послано событие.

type — Строка, указывающая тип события.

which — ASCII-значение нажатой клавиши или номер клавиши мыши.

x — Синоним layerX

y — Синоним layerY

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

Одна из важных особенностей языка — перехват события. Если кто-то, к примеру, щелкает на кнопке, то вызывается программа обработки события 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">"Кликните" по этой ссылке.</a>

</body>

</html>

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

window.captureEvents(Event.CLICK);

с тем, чтобы перехватить событие Click объектом window. Обычно объект window не работает с событием Click. Однако, перехватив, мы затем его переадресуем в объект window.