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

lab_3

.pdf
Скачиваний:
7
Добавлен:
11.05.2015
Размер:
392.48 Кб
Скачать

Оглавление

ЛАБОРАТОРНАЯ РАБОТА № 3 .............................................................................................................

2

Основы DHTML. Знакомство с JavaScript................................................................................................

2

Баннеры и слайд-шоу..................................................................................................................................

2

Цель работы:............................................................................................................................................

2

Теоретическая часть ...............................................................................................................................

2

Практическое задание...........................................................................................................................

15

Контрольные вопросы к лабораторной работе 3 ...............................................................................

16

1

ЛАБОРАТОРНАЯ РАБОТА № 3

Основы DHTML. Знакомство с JavaScript. Баннеры и слайд-шоу.

Цель работы:

знакомство с DHTML;

изучение первоначальных сведений о языке JavaScript;

изучение его возможностей создания динамических веб-страниц, в частности, баннеров и слайд-шоу.

Теоретическая часть 1. Основы DHTML

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

Из языков, разработанных для программирования сценариев, можно привести JavaScript, VBScript, JScript как наиболее простые. В настоящих лабораторных работах будут рассмотрены приемы программирования только на языке JavaScript.

Язык программирования сценариев JavaScript является значительно упрощенной версией популярного языка Java. В отличие от Java, JavaScript является интерпретируемым (как и другие языки программирования сценариев). Это значит, что при загрузке HTML-документа браузер находит в нем все программы JavaScript, проверяет их на наличие ошибок, после чего выполняет команду за командой.

1.1. Основные понятия JavaScript

Язык программирования JavaScript был разработан фирмой Netscape в сотрудничестве с Sun Microsystems и анансирован в 1995 году. JavaScript предназначен для создания интерактивных html-документов. Основные области использования JavaScript:

создание динамических страниц, т.е. страниц, содержимое которых может меняться после загрузки;

проверка правильности заполнения пользовательских форм;

решение "локальных" задач с помощью сценариев.

JavaScript позволяет создавать приложения, выполняемые на стороне клиента, т.е. эти приложения выполняются браузером на компьютере пользователя.

Программы (сценарии) на этом языке обрабатываются встроенным в браузер интерпретатором. К сожалению, не все сценарии выполняются корректно во всех браузерах, поэтому тестируйте свои javascript-программы в различных браузерах.

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

Литералы

Литералы - это простейшие данные. с которыми может работать программа.

Литералы целого типа - целые числа в представлении:

oдесятичном, например: 15, +5, -174.

oшестнадцатеричном, например: 0х25, 0хff. Шестнадцатеричные числа включают цифры 0 - 9 и буквы a, b, c, d, e, f. Записываются они с символами 0х перед числом.

oвосьмеричном, например: 011, 0543. Восьмеричные числа включают только цифры 0

-7.

2

Вещественные литералы - дробные числа (целая часть отделяется от дробной точкой), например: 99.15, -32.45. Возможна экспоненциальная форма записи, например: 2.73e-7 (в привычном виде это 2.73*10-7)

Логические значения - истина (true) и ложь (false).

Строковые литералы - последовательность символов, заключенная в одинарные или двойные кавычки. Например: "ваше имя", 'ваше имя'.

Переменные

Переменные используются для хранения данных. Переменные определяются с помощью оператора var, после которого следует имя переменной. Имя переменной должно начинаться с буквы латинского алфавита или с символа подчеркивания. Само имя может включать буквы латинского алфавита, цифры и знак подчеркивания.

Например:

var test; var _test;

var _my_test1;

Каждой переменной можно присвоить значение либо при ее инициализации (объявлении), либо в коде самой программы. Оператор присваивания обозначается знаком равно (=).

Например:

var a=15; var b=23.15;

var c='выполнено'; var s=true;

Каждая переменная имеет тип, определяемый значением переменной. Так в нашем примере: переменные a и b имеют тип number, переменная c имеет тип string, а переменная s - логический тип.

Выражения

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

В выражении a+b, a и b называются операндами, а + - знак операции. В JavaScript определены следующие операции:

операция

название

 

 

 

 

+

сложение

 

 

 

 

-

вычитание

 

 

 

 

*

умножение

 

 

 

 

/

деление

 

 

 

 

%

остаток от деления целых чисел

 

 

++

увеличение

значения

операнда

на

единицу

(инкремент)

 

 

 

 

 

 

 

 

 

--

уменьшение

значения

операнда

на

единицу

(декремент)

 

 

 

 

 

 

 

 

 

Операторы в выражении вычисляются слева направо в соответствии с приоритетами арифметических операций. Изменить порядок вычисления можно с помощью скобок.

Для каждого из арифметических операторов есть форма, в которой одновременно с заданной операцией выполняется присваивание:

оператор

эквивалентный оператор

присваивания

 

X+=Y

X=X+Y

X-=Y

X=X-Y

3

X*=Y

X=X*Y

X/=Y

X=X/Y

X%=Y

X=X%Y

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

Для того, чтобы можно было сравнивать два значения в JavaScript определены операции сравнения, результатом которых может быть только логическое значение: true или false:

операция

название

<

меньше

<=

меньше или равно

==

равно

!=

не равно

>=

больше или равно

>

больше

ВJavaScript определены логические операции:

&&- логическое И (AND), || - логическое ИЛИ (OR), ! - логическое НЕ (NOT).

Напомним, значение выражения A&&B истинно, если истинны оба оператора, и ложно в противном случае. Значение выражения A||B истинно, если значение хотя бы одного операнда истинно, и ложно в противном случае. Если значение операнда А истинно, то !A - ложно и наоборот.

Для строковых литералов определена операция конкатенация строк, т.е. их объединение. Обозначается эта операция знаком плюс (+). Результатом выполнения операции является также строка.

Пример:

var st1="Привет"; var st2="Вася"; var st3=st1+st2;

В результате в переменной st3 будет значение "Привет Вася".

Приведем таблицу приоритетов операций в порядке их убывания. Приоритет операций определяет порядок, в котором выполняются операции в выражении.

название

обозначение

инкремент

++

декремент

--

отрицание

!

умножение

*

деление, остаток от деления

/,%

сложение

+

вычитание

-

сравнение

<, >, <=, >=

равенство

==

не равенство

!=

логическое И

&&

логическое ИЛИ

||

присваивание

=, +=, -=, *=, /=, %=

4

Операторы цикла

Цикл for

Синтаксис оператора:

for (A; B; I){S}

где

A - первоначальное выражение,

B - условие продолжения. Если это выражение ложно, то выполнение цикла завершается, I - выражение инкремента,

{} - тело цикла, S - операторы.

Цикл while

Синтаксис оператора:

while (B){S}

где

B - условие продолжения. Если это выражение ложно, то выполнение цикла завершается, {} - тело цикла,

S - операторы.

 

1.2. Помещение сценария в документ

 

 

 

 

Сценарии, написанные на языке JavaScript, могут располагаться на самой html-странице

между

тегами <script></script>, которые

в свою очередь обычно

находятся в

тегах <head></head>.

У тега <script> должен

быть указан

параметр language, который

указывает язык написания скрипта. Кроме того, тег <script> имеет следующие атрибуты:

 

src - URL файла, в котором записан код внешнего сценария;

 

 

type - задает тип содержимого элемента тега SCRIPT или файла, определенного атрибутом

src,

принимает

значения

вида

text/язык_сценария

(например:

text/javascript,

text/ vbscript);

 

 

 

 

 

 

language - задает язык сценария (например, JavaScript или VBscript); при использовании атрибута type этот атрибут излишен.

<html>

<head>

<title>Заголовок документа</title>

<link rel="stylesheet" type="text/css" href="style.css"> <script language="javascript"> </script>

</head>

<body>

</body>

</html>

Теоретически теги <script></script> могут располагаться и в теле документа (в тегах <body></body>). Выполняться такой сценарий будет тогда, когда браузер "дочитает" страницу до этого места (до тегов <script></script>). В настоящее время такой способ использования скрипта является все более редким.

Стоит сказать несколько слов еще об одном HTML-элементе, имеющем отношение к сценариям — это элемент NOSCRIPT. Этот HTML-элемент задается парными тегами <NOSCRIPT> и </NOSCRIPT> и полезен, когда автор документа хочет подстраховаться на случай, если его документ будет открыт в браузере, не поддерживающем сценарии вообще или сценарии на используемом языке программирования. Итак, если сценарий не может быть выполнен, то браузер

5

отобразит содержимое элемента NOSCRIРТ (в нем может быть, например, гиперссылка на версию документа, не использующую сценарии).

1.3 Скрытие сценария

Рассмотрим прием, который часто применяется для того, чтобы браузер, вообще «не знающий» HTML-элемента SCRIРТ, не показал пользователю текст сценария. Это может случиться, если сценарий помещен в тело документа.

Для предотвращения возникновения такой ситуации текст сценария помещают в HTMLкомментарий следующим образом:

<SCRIPT type = "text/javascript”> <!--

//Текст программы, помещенной здесь, пользователь случайно не увидит

-- > </SCRIPT>

Браузеры, поддерживающие элемент SCRIPT, должны проигнорировать HTMLкомментарий внутри этого элемента.

Другим вариантом скрытия, который должен точно работать, является помещение сценария во внешнем файле и подключение его при помощи атрибута src элемента SCRIРТ.

1.4 Отладка сценариев

При создании сценариев неизбежно будут появляться ошибки. Весьма удобным средством отладки сценариев, позволяющим локализовать ошибки, является Консоль JavaScript, входящая в минимальный дистрибутив браузера Mozilla Firefox. Вызвать ее можно через меню Инструменты. Данная консоль позволяет отображать не только откровенные ошибки, но и предупреждения, связанны, например, с нежелательностью использования тех или иных конструкций JavaScript.

Если используется браузер Internet Explorer (версия ранее 9.0), то при наличии ошибки в

скрипте в левом углу строки состояния браузера появиться значок предупреждения , сообщающий об этом. Для получения сведений об ошибке необходимо дважды щелкнуть по данному значку. На экране появиться окно с кратким описанием обнаруженной ошибки (рис.1):

Рисунок 1

Если используется браузер Internet Explorer 9, то для просмотра ошибок в процессе отладки сценария можно использовать встроенные Средства разработчика, вызываемые клавишей F12 (рис.2):

6

Рисунок 2

1.5. Исполнение сценария

Теперь рассмотрим, как организовать выполнение написанных и внедренных в документ сценариев. Итак, сценарий может исполняться в двух случаях: при загрузке документа и при возникновении события (а также при вызове его интерпретатором, например по таймеру, но это рассмотрим особо).

1.5.1 Исполнение при загрузке документа

Интерпретатор браузера выполняет операторы языка JavaScript, записанные вне тела какойлибо функция, по мере загрузки документа. Причем положение HTML-элемента SCRIPT с текстом сценария определяет момент времени, в который сценарий будет выполняться.

Напишем первую программу с использованием JavaScript. Создайте html-страницу и поместите в нее следующий код:

<html>

<head>

<title>Заголовок документа</title>

<link rel="stylesheet" type="text/css" href="style.css"> <script language="javascript">

document.write("Доброго времени суток. Попробовал. Получилось!"); </script>

</head>

<body>

</body>

</html>

Откройте эту страницу в браузере, она выглядит так:

Рисунок 3

Браузер читает html-страницу, видит оператор для выполнения

document.write("Доброго времени суток. Попробовал. Получилось!"); и выполняет его.

Оператор (инструкция) состоит из следующих частей:

Объект Метод

document.write("Доброго времени суток. Попробовал. Получилось!");

7

При интерпретации html-страницы браузер создает объекты JavaScript. Они хранятся в виде иерархической структуры, отражая структуру документа, например:

Рисунок 4

На самом верхнем уровне находится объект window, представляющий окно браузера и являющийся "родителем" всех остальных объектов. Расположенные ниже могут иметь свои подчиненные объекты. Так объект document (текущая страница) может иметь дочерний объект form (форма) и т.д.

Все объекты имеют методы, которые отделяются от объекта точкой. Например: document.write позволяет писать текст в текущую страницу, window.close закрывает окно.

Также объекты имеют свойства, например: document.bgcolor - содержит значение фонового цвета текущей страницы, document.title содержит заголовок страницы.

Примечание: Все инструкции программного кода заканчиваются точкой с запятой.

1.5.2 Исполнение сценария как реакция на событие

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

Для этого в тегах элементов страницы введены параметры обработки событий, задающие действия, выполняемые при возникновении события, связанного с элементом. Например:

<div onClick="addText();"></div>

Здесь Click - событие (щелчок по div), onClick - обработчик события, addText() - имя функции, которая вызывается при возникновении этого события (щелчка по div). Правила создания и вызова функций будут рассмотрены в следующих лабораторных работах.

В таблице 2 представлены события, обрабатываемые в JavaScript.

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

<P onClick = "alert ('Вы нажали на первый абзац текста!!!')"> текст абзаца

</P>

<P onClick = "

{

//Аккуратно оформленный блок кода: строки HTML-разметки

//можно безнаказанно разрывать, поэтому код необходимо заключать в //фигурные скобки

alert ('А сейчас на второй абзац текста '); }" > Текст абзаца

</P>

8

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

В данном примере используется стандартная функция JavaScript alert – это функция, которая выводит окно предупреждений с заданным текстом.

Однако, наиболее популярной практикой является создание функций-обработчиков события (обычной функции JavaScript) вместо записи действий по обработке события прямо в теге элемента. В таком случае в обработчик оnСобытие записывается код вызова функции-обработчика (смотри описанный выше пример про обработку щелчка по div с использованием функции

addText()).

Таблица 2 - Обработчики событий

Обработчик

Описание события

событий

 

onLoad

Возникает при окончании загрузки документа или набора фреймов (для

 

элементов BODY и FRAMESET)

onUnload

Возникает при удалении содержимого документа из окна браузера или при

 

удалении содержимого фрейма из окна фрейма (для элементов BODY и

 

FRAMESET)

onCIick

Возникает при щелчке кнопкой мыши на элементе страницы

 

(поддерживается большинством элементов)

onDblClick

Возникает при двойном щелчке кнопкой мыши на элементе страницы

 

(поддерживается большинством элементов)

onMouseDown

Возникает при нажатии кнопки мыши, когда указатель находится над

 

элементом страницы (поддерживается большинством элементов)

onMouseUp

Возникает при отпускании кнопки мыши, когда указатель находится над

 

элементом страницы (поддерживается большинством элементов)

onMouseOver

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

 

(поддерживается большинством элементов)

onMouseMove

Возникает при перемещении указателя мыши над элементом страницы

 

(поддерживается большинством элементов)

onMouseOut

Возникает, когда указатель мыши покидает область, занятую элементом

 

страницы (поддерживается большинством элементов)

onFocus

Возникает, когда элемент получает фокус ввода (для гиперссылок и

 

элементов форм, а также для элементов с установленным атрибутом

 

tabindex)

onBlur

Возникает, когда элемент теряет фокус ввода (для гиперссылок

 

и элементов форм, а также для элементов с установленным атрибутом

 

tabindex)

onKeyPress

Возникает при нажатии и отпускании клавиши на клавиатуре (только когда

 

элемент имеет фокус ввода)

onKeyDown

Возникает при нажатии клавиши на клавиатуре до события KeyPress

 

(только когда элемент имеет фокус ввода)

onKeyUp

Возникает при отпускании клавиши на клавиатуре после события KeyPress

 

(только когда элемент имеет фокус ввода)

onSubmit

Возникает при щелчке на кнопке (или изображении) отправки формы

 

(только для элемента FORM)

onReset

Возникает при нажатии кнопки сброса полей формы (только для элемента

 

FORM)

onSelect

Возникает, когда пользователь выделит текст в текстовом поле (для

 

элементов TEXTAREA и INPUT)

onChange

Возникает, когда элемент теряет фокус ввода и при этом его значение

 

изменено пользователем (для элементов INPUT, TEXTAREA, SELECT)

9

2. Объектная модель документа

Чтобы успешно применять знания по программированию на JavaScript, нужно рассмотреть еще один специфический момент - то, как сценарии могут воздействовать на HTML-документ. Для этого нужно изучить технологию представления HTML-документа в виде совокупности объектов - объектную модель документа (DOM, Document Object Model). DOM включает не только объекты, из которых состоит документ, но и объекты, позволяющие получать различную информацию о браузере, системе (например, о видеосистеме компьютера), работать с окнами и многое другое.

2.1 Объект document

Для программиста на JavaScript HTML-документ представляется в виде объекта document. Этот глобальный объект существует в единичном экземпляре. О создании объекта document заботится интерпретатор.

Свойства и методы объекта document

Объект document предоставляет ряд свойств и методов, позволяющих осуществлять практически любые манипуляции с HTML-документом. Основные свойства объекта document приведены в табл. 3.

Таблица 3 - Свойства объекта document

Свойство

Описание

alinkColor

Цвет активных гиперссылок (аналогично атрибуту alink элемента BODY)

all

Возвращает коллекцию всех элементов HTML-документа

anchors

Возвращает коллекцию всех якорей HTML-документа

bgColor

Цвет фона (аналогично атрибуту bgcolor элемента BODY)

fgColor

Цвет текста (аналогично атрибуту text элемента BODY)

forms

Возвращает коллекцию всех форм HTML-документа

frames

Возвращает коллекцию всех фреймов HTML-документа

images

Возвращает коллекцию всех изображении HTML-документа

lastModified

Дата последнего изменения документа

linkColor

Цвет непосещенных гиперссылок (аналогично атрибуту link элемента

 

BODY)

links

Возвращает коллекцию всех гиперссылок HTML-документа

referrer

Адрес документа, с которого был осуществлен переход в текущий

 

документ

title

Содержимое HTML-элемента TITLE

URL

Адрес документа

vlinkColor

Цвет посещенных гиперссылок (аналогично атрибуту vlink элемента

 

BODY)

Свойства, отвечающие за цветовое оформление, хранят целочисленные значения. Другие свойства, кроме возвращающих коллекции, хранят строки.

Особо следует рассмотреть свойства, которые возвращают коллекции: all, anchors, forms, frames, images и links. В этих коллекциях находятся объекты, описывающие соответствующие элементы HTML-документа.

2.2 Коллекции

Коллекции – это объекты, во многом похожие на массивы. Однако коллекции предоставляют доступ к своим элементам с помощью метода item. Причем доступ может осуществляться как по номеру элемента в коллекции, так и по его имени (задается атрибутом id или name элемента).

Примечание: Нумерация элементов в коллекциях начинается с нуля.

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]