JavaScript для мага

       

Новые события


Наступило время, рассмотреть одну из новых особенностей Netscape Navigator 4.x -  модель событий JavaScript 1.2. Приведенные здесь примеры будут работать только в Netscape Navigator 4.x (хотя большинство из них работают также и в предварительных версиях этого браузера).

В JavaScript 1.2 поддерживается обработка следующих событий (если Вы хотите узнать побольше об этих событиях, обратитесь к документации JS 1.2 от фирмы Netscape -

http://developer.netscape.com/library/documentation/communicator/jsguide/js1_2.htm):

Abort

Focus

MouseOut

Submit

Blur



KeyDown

MouseOver

Unload

Click

KeyPress

MouseUp

Change

KeyUp

Move

DblClick

Load

Reset

DragDrop

MouseDown

Resize

Error

MouseMove

Select

 

Изучая таблицу, можете увидеть, что была реализована обработка некоторых новых событий. На этом уроке мы и рассмотрим некоторые из них.

Сперва давайте рассмотрим событие Resize. С помощью этого события Вы можете определить, был бы размер окна изменен читателем. Следующий скрипт демонстрирует, как это делается:

<html>

<head>

<script language="JavaScript">

window.onresize= message;

function message() {

  alert("The window has been resized!");

}

</script>

</head>

<body>

Пожалуйста, измените размер этого окна.

</body>

</html>

В строке

window.onresize= message;

мы задаем процедуру обработки такого события. Точнее, функция message() будет вызываться всякий раз, как только пользователь изменит размер окна. Возможно, Вы не знакомы с таким способом назначения программ, обрабатывающих события. Однако JavaScript 1.2 ничего нового здесь не привносит. Например, если у Вас есть объект button, то Вы можете определить процедуру обработки события следующим образом:

<form name="myForm">

<input type="button" name="myButton" onClick="alert('Click event occured!')">


</form>

Однако Вы можете написать это и по другому:

<form name="myForm">

<input type="button" name="myButton">

</form>

...

<script language="JavaScript>

document.myForm.myButton.onclick= message;

function message() {

  alert('Click event occured!');

}

</script>

Можно подумать, что вторая альтернатива немного сложнее. Однако почему тогда именно ее мы используем в первом скрипте? Причина состоит в том, что объект window нельзя определить через какой-либо определенный тэг - поэтому нам и приходится использовать второй вариант.

Два важных замечания: Во-первых, Вам не следует писать window.onResize - я имею в виду, что Вы должны писать все прописными буквами. Во-вторых, Вы не должны ставить после сообщения никаких скобок. Если Вы напишете window.onresize= message(),

то браузер интерпретирует message() как вызов функции. Однако в нашем случае мы не хотим напрямую вызывать эту функцию - мы лишь хотим определить обработчик события.


Содержание раздела