Важным свойством является фиксация события. Если пользователь например нажимает на кнопку, вызывается обработчик события onClick для этой кнопки. С помощью фиксации события Вы может достичь того, что ваше окно, документ или объект слоя фиксирует событие прежде, чем оно обрабатывается объектом кнопки. Аналогично, ваше окно, документ или объект слоя может обрабатывать событие прежде, чем оно достигнет предназначенного адресата.
Давайте посмотрим на пример, чтобы увидеть применение фиксации события:
<html> <head> <script language="JavaScript">
window.captureEvents(Event.CLICK);
window.onclick= handle;
function handle(e) { alert("The window object captured this event!"); return true; // i.e. follow the link }
</script> </head> <body> <a href="test.htm">Click on this link</a> </body> </html>
Вы видите, что мы не определяем драйвер события внутри тега <a>. Вместо этого мы используем
window.captureEvents(Event.CLICK);
чтобы фиксировать событие Click через window-объект. Обычно window-объект не знает событие Click
через фиксацию события мы можем переназначать его к объекту окна.
Пожалуйста обратите внимание на запись Event.CLICK. CLICK должно быть написано в верхнем регистре. Если Вы хотите фиксировать несколько событий, вы должны отделить их через |, например:
window.captureEvents(Event.CLICK | Event.MOVE);
Вы можете видеть, что мы используем return true;
внутри функции handle()(), которую мы определили, как функцию обработки события. Это означает, что окно броузера убдет следовать за связью после выполнения функции handle(). Если вместо этого Вы пишете return false; все последующие действия подавляются.
Если Вы определите обработчик события onClick
внутри<a> тега, вы поймете, что этот драйвер события не будет вызыватся. Это очевидно, поскольку объект окна фиксирует событие прежде
), чем оно достигает объекта связи. Если Вы определиете функцию handle() следующм образом