Когда загрузка и анализ документа завершаются, вызывается обработчик собы_ тия onload и исполнение JavaScript_сценариев вступает в фазу исполнения по со_ бытиям. На протяжении всей этой фазы обработчики событий вызываются асин_ хронно в ответ на такие действия пользователя, как перемещение указателя мы_ ши, щелчки кнопками мыши и нажатия клавиш. URL_адреса в JavaScript также могут вызываться асинхронно на протяжении всей этой фазы, когда, например, пользователь щелкает на ссылке, в которой спецификатор псевдопротокола javascript: указан в качестве значения атрибута href.
270 Глава 13. JavaScript в веб*броузерах

Теги <script> обычно используются для определения функций, а обработчики со_ бытий, как правило, вызывают эти функции в ответ на действия пользователя. Конечно, обработчики событий также могут содержать определения функций, но на практике такой подход обычно не используется.
Если обработчик события вызовет метод document.write() для документа, частью которого он является, это уничтожит текущий документ и будет начат новый. Обычно это совсем не то, что нужно, и на практике обработчики событий никог_ да не должны вызывать этот метод или функции, которые его вызывают. Ис_ ключение составляют многооконные приложения, в которых обработчик собы_ тия одного окна может вызвать метод write() документа в другом окне. (Подроб_ нее о многооконных приложениях рассказывается в разделе 14.8.)