Лекция № Тема: «Объекты и события»
Вид материала | Лекция |
- Лекция объекты гражданских прав. Объекты гражданских прав, 167.17kb.
- Лекция Использование языка " onclick="return false">, 163.14kb.
- Семинару по дисциплине "Гражданское право". Тема «Объекты гражданских прав», 9.73kb.
- Истец, 70.18kb.
- 1 11 Тема 2 12 тема 3 13 Тема 4 14 Тема 5 15 Тема 6 17 Тема 7 20 Тема 8 22 Тема, 284.17kb.
- Лекция Правовые Основы оценки недвижимости, 1204.27kb.
- Лекция Проектирование реляционных, 227.77kb.
- Лекция №8. Система передачи и обработки информации, 210.99kb.
- Лекция Астрология и нумерологическая символика принципов Лекция Знаки Зодиака, 517.96kb.
- Лекция Тема: Экономическая оценка природных ресурсов и объектов окружающей среды, 335.65kb.
Халелова Е.Н.
Лекция №
Тема: «Объекты и события»
Вопросы темы:
- Перехват событий
- Объект Event и его свойства
- Наиболее часто используемые свойства объекта Event
- Типовые события и основные приемы работы с ними:
- События, касающиеся окна браузера
- События, касающиеся документа в целом
- События, касающиеся форм и элементов диалога
- События мыши
- Клавиатурные события
- События, касающиеся окна браузера
- Переадресация событий
Объекты и события
Перехват событий
Перехватом события называется создание программистом Java-скрипта, содержащего некую функцию обработки, которая «привязана» к данному событию для конкретного объекта или для некоторой группы объектов. Для указания действий, которые должен выполнить компьютер в ответ на событие, в " onclick="return false">
• отдельный скрипт, «привязанный» к заданному объекту и событию (работает только в браузерах Internet Explorer):
_
Например, если требуется выдать окно-сообщение при щелчке мышью на кнопке с именем but0, то скрипт будет выглядеть так (имена событий должны записываться только строчными буквами и с парой завершающих скобок):
Аналогичным образом указывается объект и событие при вызове скрипта, расположенного в отдельном " onclick="return false">
• «привязка» функции к событию, записываемая в составе тэга данного объекта:
В состав тэга, кодирующего соответствующий элемент интерфейса страницы (элемент формы, гиперссылку, а также < BODY>), включается запись вида:
<название события>="<имя функции — обработчика> (<передаваемое значение>);"
где <функция - обработчик — некоторая функция, написанная пользователем и входящая в состав скриптового листинга, а <передаваемое значение> — некоторая константа (например, имя объекта), которая может быть использована в ходе выполнения функции — обработчика (если такой необходимости нет, после имени функции записываются пустые скобки). При этом для одного и того же объекта может быть запрограммировано отслеживание нескольких различных событий, вызывающих как одну и ту же, так и разные функции. Пример (для той же кнопки):
Примечание. В записи, реализующей вызов для указанного события назначенной ему функции-обработчика, обычно перед именем функции-обработчика записывается указание " onclick="return false"> с последующим за ним двоеточием, отделяющим его от имени функции. В более старых версиях браузера (в частности, Internet Explorer 3.0) это указание может не восприниматься корректным образом, тогда имя функции — обработчика нужно записывать сразу после знака равенства после названия события. Кроме того, по крайней мере, в версии " onclick="return false">
• присвоение функции-обработчика события в качестве значения соответствующего «свойства» объекта:
Этот способ применяется в случае, когда требуемому объекту не соответствует никакой тэг (например, для объектов window и document) или же требуется организовать обработку одного и того же события для нескольких объектов. Здесь в составе скрипта (т. е. внутри контейнера ) записывается строка вида:
<объект или иерархическая цепочка>.<событие>=<имя функции-обработчика>
Например, для той же кнопки, если она находится в составе формы с именем MyForm:
document .MyFormbutO .onclick = FunClk;
(где функция-обработчик та же самая, что и в предыдущем примере).
Если речь идет о всем документе (срабатывание при щелчке мышью на свободном от гиперссылок и элементов интерактивного диалога участке WWW-страницы), эта строка записывается так:
document.onclick=FunClk;
а при необходимости перехватить событие для объекта, поименованного с помощью параметра ID, — document.all.ObjectName.onclick=FunClk;
(во всех случаях имя события записывается строчными буквами).
• указание объекта и события в качестве имени функции-обработчика:
По смыслу этот способ можно было бы считать альтернативой первого из рассмотренных здесь, но в отличие от него здесь предоставляется возможность записи в скрипте нескольких таких функций. Пример (перехват события «щелчок мышью» для документа в целом):
function document.onclick () {
alert ("Щелчок мышью зафиксирован!"); }
• частный случай — событие «щелчок мышью» для гиперссылки
Поскольку указанное событие является для гиперссылки стандартным (подразумеваемым по умолчанию), в отдельных случаях можно присваивать соответствующую команду или вызов скрипта непосредственно в качестве значения параметра HREF. Например, следующий тэг создает ссылку, щелчок мышью на которой помещает данную страницу в список «Избранное» (подробнее об этом см. далее). Запись «префикса» " onclick="return false">
<а href="" onclick="return false">Поместите мою страничку в "Избранное"!а>
Объект event и его свойства
В " onclick="return false">window предусмотрен специальный вложенный объект event, позволяющий возвращать скриптовой программе некоторые дополнительные параметры для перехваченного события, такие как координаты курсора мыши, код нажатой клавиши и пр., а также управлять дальнейшим отслеживанием данного события в иерархической цепочке объектов. Типовая запись обращения к нему выглядит следующим образом:
<имя переменной> = window.event.<свойство> или
window.event.<свойство> = <присваиваемое значение>
(в первом случае значение считывается в переменную, во втором речь идет об изменении этого значения, что доступно лишь для некоторых свойств объекта event).
Чаще всего используемые свойства объекта event
Свойство | Назначение | Типовая запись |
X | Координаты курсора мыши (в момент совершения события) относительно верхнего левого угла данной Web-страницы | window.event.x |
У | window.event.у | |
screenX | Координаты курсора мыши (в момент совершения события) относительно верхнего левого угла экрана дисплея | window.event.screenX |
screenY | window.event.screenY | |
altKey | Проверка, была ли нажата в момент совершения события клавиша Alt, Ctrl или Shift (правая либо левая) соответственно. Возвращает значение true (нажата) или false (не нажата) Возвращает код нажатой клавиши | window.event.altKey |
ctrlKey | window.event.ctrlKey | |
shiftKey keyCode | window.event.shiftKey window.event.keyCode | |
srcElement | Возвращает один из параметров объекта, над которым произошло событие: | |
— тэг объекта | window.event.srcElement. taqName | |
— имя (значение параметра NAME) | window.event.srcElement. name | |
— имя (значение параметра ID) | window.event.srcElement. id | |
cancelBubble | Управляет распространением события по иерархической цепочке объектов (присвоение значения true запрещает такое распространение) | window.event.cancelBubble =true |
ReturnValue | Управляет срабатыванием действий по умолчанию для данного события (присвоение значения false запрещает выполнение действий по умолчанию) | window.event.returnValue |
Типовые события и основные приемы работы с ними
События, касающиеся окна браузера
• onResize — совершается, когда пользователь меняет размеры окна браузера (если оно не развернуто во весь экран);
• onMove — совершается, когда пользователь перемещает окно браузера (если оно не развернуто во весь экран).
Перехват этих событий производится присвоением имени функции-обработчика соответствующему событию, например:
window.onresize = FunRsz; function FunRsz() {
alert("Размеры окна изменены!"); }
События, касающиеся документа в целом
• onLoad — совершается, когда полностью завершена загрузка HTML-документа в окно или фрейм (обычно используется в записи тэга для вызова скриптовой функции, выполняющей какие-либо инициализирующие действия);
• onUnload — совершается, когда пользователь выходит из документа (т. е. загружает в данное окно или кадр другую страницу либо завершает работу браузера);
• onHelp — совершается, когда пользователь нажимает клавишу F1 для вызова подсказки.
Как правило, запись операторов перехвата этих событий помещается в состав тэга . Для события onHelp предусмотрено действие по умолчанию — вызов встроенного Help браузера; для блокирования этого действия необходимо включить в состав функции-обработчика данного события строку: window.event.returnValue = false;
События, касающиеся форм и элементов диалога
• onFocus — совершается, когда данный объект (элемент формы select, text или textarea) становится текущим;
• onBlur — совершается, когда элемент формы select, text или textarea перестает быть текущим (т. е. пользователь щелкнет мышью вне его или на другом элементе формы);
• onChange — совершается, когда зафиксировано изменение значения элементов формы select, text или textarea; для двух последних необходимо не только изменить содержимое области ввода текста, но и щелкнуть мышью вне его или на другом элементе формы;
• onSelect — совершается, когда в элементе формы text или textarea пользователем выделен фрагмент содержащегося текста или весь этот текст;
• onSubmit — совершается при щелчке мышью на кнопке submit (вызванная по данному событию функция должна обязательно возвращать при помощи оператора return логическое значение true или false — в первом случае производится указанное в составе тэга