= WEB-design =
la_serg
JavaScript: Заключение
Итак продолжаем рассматривать модель событий в JS...
Событие Error. Обработчик данного события вызывается при возникновение ошибки в коде JS. Данное событие не используется для статических скриптов (статические скрипты - те, которые хранятся в html, динамические - те, которые генерируются средствами CGI).
Событие KeyDown происходит при нажатии на клавишу клавиатуры. Полностью аналогично MouseDown. Событие KeyPress происходит при "клике" на клавишу клавиатуры. Полностью аналогично Click. Состоит из двух частей: KeyDown'a и KeyUp'a. Событие KeyUp - происходит при отпускании клавиши клавиатуры. Полностью аналогично MouseUp. Событие Load-Происходит при загрузке объекта. Пример:
<html>
...
<body onload="check()">
...
<script language="JavaScript">
function check() {
if((navigator.appVersion.indexOf("MSIE 5.") == -1)) {
alert("Рекомендуем утановить IE 5.0 или выше\nВозможнно ваш браузер
некоректно отбражает данную страницу\nСпасибо.");
}
Yscrn=window.screen.Height; Xscrn=window.screen.Width;
if(window.screen.Height < 768) {
alert("Разрешение вашего экрана " + Xscrn + " x " + Yscrn + "\nМинимальное
разрешение для сайта 1024 x 768\nСпасибо");
}
}
</script>
Разберемся с примером. В теге body мы устанавливаем функцию check() обработчиком события Load. Это значит, что при загрузке странички браузер выполнит функцию check(). В нашем примере эта функция проверяет версию браузера и разрешение экрана пользователя.
Первый блок if ищет подстроку MSIE 5. в navigator.appVersion (этот параметр содержит версию браузера. Если подстрока не найдена - функция выдает сообщение. Теперь присваиваем двум переменным высоту и ширину экрана (в пикселях).
Второй блок if, сравнивает высоту с цифрой 768. Если высота меньше, пользователю сообщается его экранное разрешение и предлагается проапгрейдить монитор ;))
Вернемся к событиям (к JS событиям;))) На очереди у нас Reset. Событие происходит при нажатии на кнопку Reset (не путать с той что на системном блоке ;)). Подробнее о кнопке reset и других элементах форм - в следующих выпусках.
Событие Resize мы уже рассматривали. Оно применимо к окну браузера и фреймам. Submit происходит при нажатии на кнопку типа submit. Обычно по этому событию запускают проверку формы (правильно ли ввели данные). Событие Unload - обратно событию load. Можно закрывать дочерние окна при выгрузке основного документа. Обычно, данное событие активно используют владельцы порносайтов. При закрытии их страницы Вам открывается еще 5 ;))
Так, с основными событиями все. Теперь давайте рассмотрим динамическое создание страниц с помощью JavaScipt. Необходимо сразу напомнить - JavaScript выполняется на стороне посетителя, а следовательно не имеет доступа к БД, которые находятся на сервере. Подобное условие очень сильно урезает возможности динамического создания странички с помощью JS.
В JS есть 2 метода: document.write(var) и document.writeln(var). Они записывают переменную var в документ. Первый метод просто записывает, а второй записывает строчку, т.е. после переменной var ставится перевод каретки. В общем случае генерация документа выглядит так: открываем новое окно методом test=open("", "displayWindow", ""); После этого нам необходимо открыть документ в этом окне: test.document.open() В параметре у этого метода Вы можете указать соответствующий MIME тип, это позволяет генерировать не только текст, но и графику! По умолчанию text/html. Теперь, когда докумет открыт, пишем туда любую ерунду, например, test.document.write("<html><body>Hello World!</body></html>"); после окончания записи необходимо закрыть документ test.document.close(); Открывать и закрывать документ надо если Вы генерируете страницу в пустом окне. Если же Вы генерируете кусок страницы, то Вам этого делать не надо. Рассмотрим примерчик для закрепления знаний по JavaScript.
<Script language="JavaScript">
if(window.screen.Height >= 768) {
var clas = "large"; var width = 550; var height = 350; var tablewidth
= 760;
}
else {
var clas = "small"; var width = 400; var height = 266; var tablewidth
= 540;
}
document.write("<table width=" + tablewidth + " border=0><tr><td>");
document.write("<img border=0 src=images/champions.jpg width="
+ width + " height=" + height + "></td><td>");
document.write("<A href=# class=" + clas + ">link1</A><br>");
document.write("<A href=# class=" + clas + ">link2</A><br>");
document.write("</td></tr></table>");
</script>
На сайте была страничка с фотографией и списком фамилий, если поставить фотографии нормальные размеры, то при разрешении 800х600 появлялись полосы прокрутки, если ужать - то при 1024х768 и выше нельзя было разглядеть абсолютно ничего. В результате был написан данный скрипт. Были рассчитаны пропорции размеров фотографии и шрифта ссылок: класс 1 для высокого разрешения и класс 2 для низкого. Оператор if в начале скрипта определяет разрешение экрана и в соответствии инициализирует переменные. Следующий оператор вписывает таблицу, ширина которой идет из переменной tablewidth. В левый столбец вписывается фотография с высотой и шириной равными height и width соответственно. В правый столбец вписываются ссылки (в оригинале с фамилиями) ссылкам выставляется класс стиля соответствующий переменной clas.
В следующих выпусках мы рассмотри использования таблиц стилей. До скорых встреч.
#10(51)/10.04.2001
|