Wiki-учебник по веб-технологиям: JavaScript/НовыеСобытия ...

Главная | Каталог |

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


Наконец то пора взглянуть на одно из новых свойств Mozilla Firefox: модель события JavaScript 1.2.

Следующие события поддерживаются в JavaScript 1.2 :

AbortFocusMouseOutSubmit
BlurKeyDownMouseOverUnload
ClickKeyPressMouseUp
ChangeKeyUpMove
DblClickLoadReset
DragDropMouseDownResize
ErrorMouseMoveSelect

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

<html>
<head>
<script language="JavaScript">

window.onresize= message;

function message() {
  alert("The window has been resized!");
}

</script>
</head>
<body>
Please resize the window.
</body>
</html>


С помощью этой строки

window.onresize= message;


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

<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 – то есть Вы должны использовать строчные буквы. Во-вторых вы не должны ставить никаких скобок после message. Если вы пишете window.onresize= message() браузер интерпретирует message(), как обращение к функции. Но в этом случае мы не хотим вызывать функцию непосредственно – мы только хотим определить обработчик события.