Отправляет email-рассылки с помощью сервиса Sendsay

Программирование на JavaScript

  Все выпуски  

Азы и секреты программирования на JavaScript.


Служба Рассылок Subscribe.Ru
Азы и секреты программирования на JavaScript N 17

Ссылка на архив предыдущих выпусков: http://subscribe.ru/
Статистика рассылки: http://subscribe.ru/
Форум по языкам сценариев: http://www.b-soft.ru/phorum/

Работа с событиями.

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

Получение информации о событии.

Все способы соединения кода и событий, о которых говорилось раньше, годятся также и для старых версий броузеров, которые поддерживают работу сценариев (даже если главный элемент не передает их - раньше поддерживалось очень немного событий). Dynamiс HTML добавляет еще один способ получения информации о событии - это объект event.

Этот объект постоянно обновляется, включая в себя максимум информации о любом событии, произошедшем на странице, каким-бы оно ни было. Таким образом, когда происходит событие, мы можем узнать свойства объекта event для получения полной информации об этом событии. Вспомним пример, рассмотренный в одном из предыдущих выпусков:

<H2 onmousedown="alert_event();">
Щелкни тут, удерживая Shift, Ctrl или Alt.
</H2>

<SCRIPT LANGUAGE="JAVASCRIPT">
function alert_event() {
  strMesg = "Вы щелкнули ";
  if(window.event.button == 1) strMesg = strMesg + "левой ";
  if(window.event.button == 2) strMesg = strMesg + "правой ";
  if(window.event.button == 4) strMesg = strMesg + "средней ";
  strMesg = strMesg + "кнопкой мыши,\n\r в точке x = " +
   window.event.x + ", y = " + window.event.y;
  if(window.event.shiftKey|window.event.ctrlKey|window.event.altKey){
   strMesg = strMesg + "\n\r" + "при нажатой клавише ";
   if(window.event.shiftKey) strMesg = strMesg + "Shift";
   if(window.event.ctrlKey) strMesg = strMesg + "Ctrl";
   if(window.event.altKey) strMesg = strMesg + "Alt";
  }
  alert(strMesg+".");
}
</SCRIPT>

Здесь показано, как получить такую информацию, как номер нажатой кнопки мыши, координаты в момент нажатия и данные о вспомогательных клавишах клавиатуры. Заметим, что в этом примере мы указали объект window, определенный по умолчанию. В языке JavaScript это делать необязательно.

Если надо получить свойства объекта event для получения информации о событии клавиатуры, можно использовать те-же приемы, что и с мышью. В этом случае используются свойства shiftKey, ctrlKey, altKey и свойство KeyCode для определения, какая клавиша клавиатуры была нажата.

Определение источника события.

Каждый элемент на странице обладает рядом свойств, полный список которых Вы найдете на сайте B-Soft.Ru . Кстати, на здесь-же наконец появился полный справочник JavaScript, VBScript и Windows Scripting Host. Правда информация пока только на английском. В связи с этим обращаюсь ко всем, кто владеет техническим английским и знаком с HTML: работы по переводу море - более тысячи файлов. Кто хочет, может помочь перевести хоть пару страниц. В награду за Вашу помощь я согласен разместить любые Ваши банеры - по одному в нижней части каждой из переведенных вами страниц. Впрочем, я отвлекся. Среди стандартных свойств элементов есть свойство id, которое задается в атрибуте ID для задания элементу уникального имени, чтобы потом на него можно было ссылаться:

<H2 ID=myText align=CENTER>Щелкни тут.</H2>

Можно получить значение любого атрибута с помощью ключевого слова this. Например, чтобы получить значение атрибута выравнивания в предыдущем примере, используется конструкция this.align. Только следует обратить внимание, что если значение атрибута Вами не указано явно в теге, а броузер использует значение по умолчанию, то в ответ на запрос значения этого атрибута Вы получите пустую строку. Аналогично можно получить значение атрибута id:

<H2 onmousedown="alert_event(this.id);" ID=myText align=CENTER>
Щелкни тут.</H2>

<SCRIPT LANGUAGE="JAVASCRIPT">
  function alert_event(a) {
    strMesg="Получен атрибут: " + a;
    alert(strMesg+".");
  }
</SCRIPT>

Впрочем, существуют более изящные способы идентификации. Но об этом в следующем выпуске.


Ссылка на архив предыдущих выпусков: http://subscribe.ru/
Статистика рассылки: http://subscribe.ru/
Форум по языкам сценариев: http://www.b-soft.ru/phorum/
Автор и ведущий рассылки И. Балезин

Программа Citycat by Email позволяет работать с сервером Subscribe.ru с помощью электронной почты. Теперь Вам не нужно тратить деньги на работу в online и просматривать мегабайты рекламы для того, чтобы подписаться на нужную рассылку! Вам просто необходимо скачать небольшую базу данных по всем рассылкам каталога с нашего сайта, после чего Вы сможете подписываться и отписываться от рассылок, заказывать архивы прошлых выпусков, выполнять поиск по каталогу рассылок и многое другое. Программу Citycat by Email можно бесплатно загрузить с сайта http://sapisoft.h1.ru.
Материалы для Web-мастера.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное