Новые события
Наконец то пора взглянуть на одно из новых свойств Mozilla Firefox: модель события JavaScript 1.2.
Следующие события поддерживаются в JavaScript 1.2 :
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>
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(), как обращение к функции. Но в этом случае мы не хотим вызывать функцию непосредственно – мы только хотим определить обработчик события.