
Обработчики событий
В тегах <body> и <frame> можно использовать обработчики событий, связанных загрузкой и выгрузкой документа, onLoad и onUnload. Примеры использования событий будем разбирать позже.
Приведем несколько примеров использования объекта document.
Для записи текста в HTML-формате в браузер иногда применяют функцию document.writeln(). Например, можно динамически создавать теги изображений, выводя изображения на экран посредством следующего: document.open(); document.writeln("<img sr='myimage.gif'>"); document.close(); С помощью JavaScript программ, а в частности при помощи объекта document, можно создавать законченные HTML-документы и другие JavaScript программы. Например: document.open(); document.writeln("<script language='JavaSript'>"+ "alert('Hello World!')"+ "</script>"); document.close();
Заметьте, что в приведенных примерах несколько строк объединяются при помощи операции сложения +. Этот способ удобно применять, когда строки текста программы слишком длинны, чтобы поместиться в редактируемом окне, или когда сложные строки необходимо разбить на несколько простых.
Практическая часть
1. Разберите пример для метода document приведенный ниже
<SCRIPT LANGUAGE='JavaScript'> function banner(msg,ctrlwidth) { msg = " --- "+msg newmsg = msg while (newmsg.length < ctrlwidth) {newmsg += msg} document.write ('<FORM NAME="Banner">') document.write ('<CENTER><INPUT NAME="banner" VALUE= "'+newmsg+'" SIZE= '+ctrlwidth+'></CENTER>') document.write ('</FORM>') rollmsg() } function rollmsg() { NowMsg=document.Banner.banner.value NowMsg=NowMsg.substring(1,NowMsg.length)+NowMsg.substring(0,1) document.Banner.banner.value = NowMsg bannerid=setTimeout("rollmsg()",100) } </SCRIPT> <SCRIPT language='JavaScript'> banner("У попа была собака, он ее любил, она съела кусок маса, он ее убил, закопал и на могиле написал:",70) </script>
1. Функция banner() имеет 2 параметра: - msg - текст сообщения для циклического вывода, - ctrlwidth - ширина поля вывода в символах. К тексту msg добавляем слева символы --- , чтобы не сливались предыдущий и последующий экземпляры текста. В переменную newmsg запишем непрерывную последовательность из ctrlwidth экземпляров текста msg. В форме Banner определяем текстовую переменную banner длиной ctrlwidth символов и с начальным значением newmsg. Вызываем программу прокрутки rollmsg(). 2. Функция rollmsg() выполняет следующие действия: - Записать в newmsg текущее содержимое строки текста, - Самый первый символ текста переставляем в конец(здесь и достигается эффект прокрутки , - Полученный текст пересылается назад, в форму. - Функция setTimeout("rollmsg()",100) выполняет задержку функции rollmsg с интервалом в 100 миллисекунд. 3. Вызываем функцию banner с соответствующими параметрами.
2. Разберите следующий скрипт:
<SCRIPT LANGUAGE = "JavaScript">
netscape = 0;
if (navigator.appName == "Netscape" ||
parseInt(navigator.appVersion)> 3) {
netscape = 1;
change = new Image(64, 54); change.src = "webp102.gif";
normal = new Image(64, 54); normal.src = "webp101.gif";
}
function change_image() {
if (netscape==1) {
document.images[0].src = change.src;
}
}
function normal_image() {
if (netscape==1) {
document.images[0].src = normal.src;
}
}
</SCRIPT>
<A HREF="javascript.html"
onMouseOver="change_image();
window.status='мышка в картинке';
return true"
onMouseOut="normal_image();
window.status='мышка вне картинки';
return true">
<CENTER><IMG SRC="webp101.html" WIDTH=64 HEIGHT=54 BORDER=0 ALT="click here!">
<BR>