Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторные работы / HTML_Лаб_4_Сценарии

.doc
Скачиваний:
36
Добавлен:
17.04.2015
Размер:
63.49 Кб
Скачать

6

Лабораторная работа № 4

Разработка и использование сценариев в языке HTML

Цель работы: познакомиться с построением динамических Web-страниц.

Для того чтобы после загрузки в браузер содержимое Web-страницы динамически изменялось, необходимо воспользоваться специализированными Web-приложениями (сценариями). В результате применения этих программных средств можно запрограммировать «поведение» тех или иных элементов Web-страницы, в зависимости от действий пользователя (например, щелчок мышью или перемещение указателя мыши).

Программные средства для создания динамических страниц: ActiveX, DHTML, Java, JavaScript, VBScript.

1. Язык сценариев VBScript.

Для того чтобы добавить код сценария в Html-документ, необходимо воспользоваться дескриптором <Script>, который должен находиться в пределах дескриптора <Head> или <Body>. В дескрипторе <Script> указывается язык программирования, на котором записываются действия. Например, если используется язык программирования VBScript, то открывающий дескриптор выглядит

<Script language="VBscript">

Сценарии используют для «обслуживания» событий, которые возникают на Web-странице после ее загрузки в Web-браузер. Существует несколько видов событий. Из самых распространенных можно отметить: window_onload - запускается при полной загрузке документа. Создайте Web-страницу с обработчиком этого события. В этом примере код Script записан в теле страницы. Процедура Alert выводит сообщение, которое записывается в кавычках.

Пример №1

<Html>

<Head>

<Title> Задача 1-Загрузка</Title>

</Head>

<Body>

<Script language="VBscript">

Sub window_onload

Alert "Добро пожаловать на мою домашнюю страницу!"

end sub

</Script>

</Body>

</Html>

При загрузке документа появится окошко с данной надписью и кнопкой ОК

Пример №2

Событие onmouseover - возникает при наведении указателя мыши на гиперссылку. В этом примере код Script расположен в теле программы.

<Html>

<Head> <Title> Задача 2- ссылка</Title> </Head>

<Body>

<a href="http://wanderfly.da.ru/" name="link">

Наведите на эту ссылку указатель мыши</a>

<script language="vbscript">

sub link_onmouseover

status ="Home page!!!"

end sub

</script>

</Body>

</Html>

1.1 Процедуры

Чаще код обработчика события записывается в теле процедуры.

Процедура это общее название функций или подпрограмм. Имеет синтаксис:

sub name_событие ....... end sub.

name - это имя процедуры.

событие - то, что может "случиться" в окне броузера.

"onclick" означает, что процедура выполнится, при нажатии на кнопку, предварительно заданную на форме.

Событие onclick возникает при щелчке по компоненту.

Пример № 3

Создадим форму, на которой расположены два текстовых окна и кнопка. При нажатии на кнопку содержимое первого окна копируется во второе окно.

<Html>

<Head> <Title> Задача 3 Копирование</Title> </Head>

<Body>

<FORM NAME=forma>

<INPUT TYPE="text" NAME="text1"><BR>

<INPUT TYPE="text" NAME="text2"><BR>

<INPUT TYPE="button" NAME="knopka"

VALUE="Скопировать" OnClick=copyfun()>

</FORM>

<SCRIPT LANGUAGE="VBScript">

sub copyfun

dim copytext

copytext=document.forma.text1.value

document.forma.text2.value=copytext

end sub

</SCRIPT>

</Body>

</Html>

1.2. Обращение к содержимому компонентов

Синтаксис операторов указывающих как "добраться" до данных в поле ввода:

x = top.имя_фрейма.document.имя_формы.имя_объекта_text_box.value

1.3. Вызов сценариев VBscript.

Веб-страница с активным содержимым, всегда делится как бы на две части: Первая, это html код самой страницы содержащий необходимые элементы управления (ссылки, кнопки, формы для ввода информации и т.д.), и Вторая, сценарии на скрипте, которые начинают работать при различных событиях происходящих с элементами управления. Это можно назвать главной отличительной особенностью программ для Web-страниц, от обычных исполняемых приложений.

Основные приемы вызова сценариев, или процедур.

Сценарий вызываемый неявно:

Пример № 4.

<html>

<head>

<Title> Задача 4 Привет</Title>

<script language="VBScript">

Sub but_onclick

Alert "Привет пиплы:)"

End sub

</script>

</head>

<body>

<form>

<input type="button" name="but">

</form>

</body>

</html>

Это самый простой метод. Указываем имя оператором name="имя" в теге характеризующим элемент управления (but), это же "имя" пишем в вызываемой процедуре и через знак подчеркивания пишем событие, которое должно произойти для исполнения сценария (but_onclick).

Выполните этот пример.

Вызов сценария, определяемый в элементе управления:

Пример №5

<html>

<head>

<Title> Задача 5 Привет</Title>

<script language="VBScript">

Sub scenariy

Alert "Привет пиплы:)"

End sub

</script>

</head>

<body>

<form>

<input type="button" name="but" onclick="scenariy" language="VBScript">

</form>

</body>

</html>

Обработчик события определяется в дескрипторе компонента.

Вызов из другой процедуры:

Пример № 6

<html>

<head><Title> Задача 6 Привет</Title>

<script language="VBScript">

Sub but_onclick

Call butalert("Привет пиплы")

End Sub

Sub butalert(a)

Alert a

End Sub

</script>

</head>

<body>

<form>

<input type="button" name="but" >

</form>

</body>

</html>

Выполните этот пример.

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

<script language="VBScript">

Sub but2_onclick

Alert "Привет пиплы:)"

End sub

</script>

<form>

<input type="button" name="but2" value="пример">

</form>

В каком месте документа лучше размешать код сценария? В любом месте документа и в неограниченном количестве. Определения процедур рекомендуется размещать в разделе <HEAD>, хотя это и не обязательно. Подобная практика улучшает чтение кода сценария, позволяя избегать поиска процедуры по всему документу. Более того, при интерпретации браузером документа раздел <HEAD> интерпретируется до начала обработки тела документа, следовательно, все процедуры будут размещены в памяти до того, как в документе встретится их вызов.

1.4. Выполнение общих примеров

Пример №7

Разработаем Web-страницу, которая реализует игру «Угадай число». Поставим задачу, написать программу, которая бы случайным образом загадывала число от 1 до 100, и предлагала Вам его угадать. При неправильном предположении, программа должна выводить сообщение о том, больше загаданное число или меньше. Ведется подсчет попыток. В случае победы выводится поздравление.

<html>

<Head>

<title> Угадай число</title>

<script language="vbscript">

dim a, p, v ' определяем переменные

sub begin_onclick ' процедура срабатывающая при нажатии (событие onclick)

document.ugadai.chislo.value ="qqqqqqqq" ' кнопки с именем begin

randomize ' включение генератора случайных чисел

a=int(rnd(1)*100+1) ' присваивание переменной (a) случайного значения

p = 1 ' обнуление счетчика

alert "число загадано" ' вывод сообщения в отдельном окне

end sub ' конец процедуры

sub but_onclick ' процедура срабатывающая при нажатии

‘ (событие onclick) кнопки с именем but

v = document.ugadai.chislo.value ' переменной (v) присваивается значение

' содержащееся в поле ввода формы

' путь: документ (просто эта html страница).

' форма с именем ugadai.

' объект- поле для ввода с именем chislo.

' свойство value

v=cint(v) ' поскольку поле для ввода содержит текстовую

' информацию, то переменную (v) надо преобра-

' зовать в целочисленный тип (функция cint)

if a > v then

alert "загаданное число больше, попробуйте еще"

p = p + 1

end if

if a < v then

alert "загаданное число меньше, попробуйте еще"

p = p + 1

end if

if a = v then

document.write"<center>Победа за "&p&" ходов.</center>"

end if

' оператор document.write выводит содержащуюся

' в кавычках информацию в новое окно броузера

' как html код.

end sub

</script>

</head>

<body>

<FORM NAME=ugadai>

<INPUT TYPE="button" NAME="begin" VALUE="Загадать число" ><BR><BR>

Ваш вариант:<BR>

<INPUT TYPE="text" NAME="chislo"> <BR>

<INPUT TYPE="button" NAME="but" VALUE="Enter">

</FORM>

</body>

</html>

Пример №8

Разработайте форму для расчета площади фигур, определяющихся с помощью компонента «выпадающий список».

<html>

<head>

<title>Контроль и обработка формы на клиенте</title>

<script language = "VBScript">

function calc()

alert "!!!"

dim f, L, h

f = document.frm.f.selectedIndex

L = document.frm.L.value

h = document.frm.h.value

if is Numeric(L) AND is Numeric(h) Then

L = ABS(L)

h = ABS(h)

If f = 0 Then

calc = L*h

Else

If f =1 then calc = L*h/2

EndIf

Else

MsgBox "НЕДОПУСТИМЫЕ ПАРАМЕТРЫ"

EndIf

EndFunction

</SCRIPT>

</HEAD>

<BODY BGCOLOR=#FFFFFF>

<H3>Вычисление площади фигуры</H3><HR>

<FORM NAME=frm>

<P>Фигура

<SELECT NAME=f>

<OPTION VALUE=0>прямоугольник

<OPTION VALUE=1>треугольник

</SELECT>

<P>Ширина <INPUT TYPE=TEXT NAME="L" VALUE=10>

<P>Высота <INPUT TYPE=TEXT NAME="h" VALUE=20>

<P>Площадь <INPUT TYPE=TEXT NAME="S" VALUE=0>

<P><INPUT TYPE=BUTTON NAME="b" VALUE="Расчет" OnClick=Calc()>

</FORM>

</BODY>

</HTML>

1.5. Самостоятельная работа

Разработайте Web-страницу, которая будет представлять собой калькулятор.

На форме должны быть расположены текстовые окна для ввода исходной информации и окно результата. Четыре кнопки (+, -, *, /) должны осуществлять арифметические действия.

Соседние файлы в папке Лабораторные работы