Примеры и рекомендации по использованию сценариев

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

 

Пример 10. Определение Web-броузера клиента.

В основу броузеров MSIE и NN положены разные объектные модели документа - DOM (Document Object Model) и принципы обработки событий (MSIE-метод всплытия, NN-метод перехвата). Без учета данных особенностей невозможна разработка универсальных сценариев для Web-страниц:

 

<HTML>

<HEAD>

<TITLE>Сведени о броузере</TITLE>

</HEAD>

<BODY BGCOLOR ="SILVER", TEXT="BLACK", LINK="BLUE", ALINK="RED", VLINK="NAVY">

<h1>Для навигации в Web вы используете:</h1>

<hr>

<ul>

<SCRIPT TYPE="text/javascript">

document.write("<li>Имя программы: <b>"+navigator.appName+"</b>");

document.write("<li>Версия: <b>"+navigator.appVersion+"</b>");

document.write("<li>Пользовательский агент: <b>"+navigator.userAgent+"</b>");

document.write("<li>Платформа: <b>"+navigator.platform+"</b>");

</SCRIPT>

</ul>

<hr>

</BODY>

</HTML>

 

Пример 11. Элементы DHTML в документах.

Документы DHTML содержат сценарии, позволяющие изменять свойства CSS (видимость, оформление и даже содержание) элементов документа, в зависимости от действий пользователя. При использовании в сценариях свойств CSS элементов документа необходимо знать правила преобразования имени свойства CSS к имени свойства JavaScript: из имени свойства удаляются все тире, а каждый символ имени свойства после тире заменяется на прописной символ. Например: border-color преобразуется в borderColor, а font-size в fontSize;

 

<HTML>

<HEAD>

<TITLE>Элементы DHTML в документах</TITLE>

<META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript">

<SCRIPT TYPE="text/javascript">

// определение броузера

function isMSIE() {

if (navigator.appName == "Microsoft Internet Explorer") return true;

else return false;

}

</SCRIPT>

</HEAD>

<BODY BGCOLOR ="WHITE", TEXT="BLACK", LINK="BLUE", ALINK="RED", VLINK="NAVY">

<H1 ALIGN=CENTER>Демонстрация элементов DHTML в документе</H1>

<HR>

<H2>Динамические слои</H2>

<p>Управляя свойствами слоев из сценариев можно реализовать массу динамических элементов (<i>раскрывающиеся меню и списки, изменющиеся рисунки, дополнительные поля форм и т.д.</i>):

<p>Например вот так:

<FORM NAME="family">

<p><b>На кого глядеть будем ?</b>

<p><INPUT TYPE="radio" NAME="HorW" VALUE="H" CHECKED

onClick = "if ( isMSIE() ) document.all.husb.style.visibility = '';

else document.layer[1].visibility = '';"> Я

<p><INPUT TYPE="radio" NAME="HorW" VALUE="W"

onClick = "if ( isMSIE() ) document.all.husb.style.visibility = 'hidden';

else document.layer[1].visibility='hidden';"> Жена

</FORM>

<IMG ID="wife" SRC="girl1.gif" BORDER=0 ALT="Лицо" STYLE="position:absolute; top:260; left:150">

<IMG ID="husb" SRC="boy2.gif" BORDER=0 ALT="Морда" STYLE="position:absolute; top:260; left:150">

<HR>

<H2>Динамические ссылки</H2>

<p>Обрабатывая различные события можно динамически изменять стиль ссылок (<i>проще это реализовать через псевдоклассы в таблице стилей</i>):

<p><b>В MSIE можно слелать так: </b> Заходи сюда - не пожалеешь

<A href="#"

onMouseOver = "if ( isMSIE() ) this.style.textTransform='uppercase';"

onMouseOut = "if ( isMSIE() ) this.style.textTransform='none';"

onClick = "alert('Извиняйте, это лишь пример !');">Горячо !!!</A>

<p><b>Или даже вот так : </b> Заходи сюда - не пожалеешь

<A href="#"

onMouseOver = "if ( isMSIE() ) this.innerText='НУ ОЧЕНЬ УЖ ГОРЯЧО !';"

onMouseOut = "if ( isMSIE() ) this.innerText='Горячо !!!';"

onClick = "alert('Извиняйте, это лишь пример !');">Горячо !!!</A>

<p><b>Графические ссылки можно оформить так: </b> Заходи сюда - не пожалеешь

<A href="#"><IMG src="hot.gif" align="middle" border=0

onMouseOver = "this.src='ahot.gif';"

onMouseOut = "this.src='hot.gif';"

onClick = "alert('Извиняйте, это лишь пример !');"></A>

<HR>

<H2>Динамические подсказки</H2>

<p>В статусной строке броузера можно выводить подсказки об выделенных в текущий момент элементах документа:

<p><b>Например описание ссылки: </b>

<a href="#"

onMouseOver = "window.status='Переход на узел WWW.SITE.RU где ...'; return true;"

onMouseOut = "window.status=''; return true;">Ссылка с подсказкой</a>

<p><b>Или описание рисунка: </b>

<IMG SRC="boy2.gif" BORDER=0 ALIGN="MIDDLE"

onMouseOver = "window.status='Раньше я выглдел гораздо лучше !'; return true;"

onMouseOut = "window.status=''; return true;">

<HR>

</BODY>

</HTML>

 

 

Пример 12. Элементы анимации в документах.

 

Анимация основана на изменении средствами сценария, таких свойств CSS элементов, как видимость, размер и положение элемента (как правило слоев документа).

 

<HTML>

<HEAD>

<TITLE>Анимация в документах !</TITLE>

<SCRIPT TYPE="text/javascript">

var pos1 = 0;

var pos2 = 0;

var speed1 = Math.floor(Math.random() * 10)+25;

var speed2 = Math.floor(Math.random() * 10)+25;

function ctrlRun() {

pos1 = (pos1 > 600) ? 0 : pos1 + speed1;

pos2 = (pos2 > 600) ? 0 : pos2 + speed2;

switch(navigator.appName) {

case "Netscape": // броузер NN

document.layers[0].left = pos1;

document.layers[1].left = pos2;

window.setTimeout("ctrlRun()", 250);

break;

case "Microsoft Internet Explorer": // броузер MSIE

document.all.men.style.left = pos1;

document.all.wom.style.left = pos2;

window.setTimeout("ctrlRun()", 250);

break;

default:

window.alert("На чем вы работаете ?");

}

}

</SCRIPT>

</HEAD>

<BODY BGCOLOR ="BLACK", TEXT="WHITE", LINK="WHITE", ALINK="RED", VLINK="SILVER">

<h2>Кто быстрее: бегун или бегунья ?</h2>

<IMG ID="men" SRC="people1.gif" BORDER=0 STYLE="position:absolute; top:150; left:0">

<IMG ID="wom" SRC="people2.gif" BORDER=0 STYLE="position:absolute; top:300; left:0">

<FORM NAME="form1">

<INPUT TYPE="BUTTON" NAME="btnStep" VALUE="Старт-Бегунов" onClick="ctrlRun();">

</FORM>

</BODY>

</HTML>

Пример 13. Обработка данных из форм.

Предварительная обработка данных из форм, позволяет сократить кол-во обменов данными с сервером, за счет выявления типовых ошибок пользователей, на этапе заполнения формы (неверные даты, пустые поля и др.).

 

<HTML>

<HEAD>

<TITLE>Проверка данных в формах</TITLE>

<SCRIPT TYPE="text/javascript">

function valid() {

if (document.form1.fio.value.length < 5) {

window.alert("Введите имя !");

return false;

}

if (document.form1.tel.value.length < 3) {

window.alert("Введите телефон !");

return false;

}

if (document.form1.edu.value.length < 10) {

window.alert("Заполните сведения об образовании !");

return false;

}

return true;

}

</SCRIPT>

</HEAD>

<BODY BGCOLOR ="WHITE", TEXT="BLACK", LINK="BLUE", ALINK="RED", VLINK="NAVY">

<H1 ALIGN=CENTER>Заполните пожалуйста данные</H1>

<HR>

<FORM NAME="form1" ACTION="mailto:lst@user.ru" onSubmit = "return valid();">

<table width=100% align=center>

<col width=35% align=left valign=top>

<col align=left valign=top>

<tr>

<th>Введите ваше ФИО:

<td>

<INPUT TYPE="text" NAME="fio" SIZE=30 MAXLENGTH=40>

<tr>

<th>Введите телефон:

<td>

<INPUT TYPE="text" NAME="tel" SIZE=9 MAXLENGTH=9>

<tr>

<th>Сведения об образовании:

<td>

<TEXTAREA NAME="edu" TITLE="Образование" ROWS=5 COLS=30>

</TEXTAREA>

</table>

<p align=center><INPUT TYPE="reset" NAME="but2" VALUE="Очистить форму">

<INPUT TYPE="submit" NAME="but3" VALUE="Отправка данных">

</FORM>

<HR>

</BODY>

</HTML>

Пример 14. Управление окнами броузера.

Для управления окнами броузера средствами сценария используются методы JavaScript: window.open() и window.close().

 

<HEAD>

<TITLE>Работа с окнами в JavaScript</TITLE>

<META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript">

</HEAD> <BODY BGCOLOR ="WHITE", TEXT="BLACK", LINK="BLUE", ALINK="RED", VLINK="NAVY">

<H1 ALIGN=CENTER>Управление окнами броузера из сценария</H1>

<HR>

<FORM NAME="form1">

<p><INPUT TYPE="button" NAME="open" VALUE="Открыть окно"

onClick="newWin=window.open('','newWin','toolbar=no, status=no, width=250, height=250');">

<p><INPUT TYPE="button" NAME="close" VALUE="Закрыть окно"

onClick="newWin.close();">

</FORM>

<HR>

<p>Для загрузки данных в созданное окно необходимо передать URL загружаемого ресурса, как первый параметр метода - <b>open</b> (<i>в нашем примере он пустой</i>).

</BODY><HTML>

 

</HTML>

 

Знания методов и средств разработки сценариев интерактивного управления документами, позволит вам перейти на качественно новый уровень профессионального мастерства.

 








Дата добавления: 2015-04-19; просмотров: 796;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.038 сек.