Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CIT / LabRab03.doc
Скачиваний:
12
Добавлен:
11.02.2019
Размер:
508.93 Кб
Скачать

2.6 Создание функции

Создавая переменную, вы присваиваете имя результату команды или события JavaScript. Создавая функцию, вы делаете почти то же самое, только имя присваивается целой серии команд. Множество команд JavaScript вы комбинируете в одну.

Сам скрипт состоит из двух частей: собственно функции и команды onLoad, которая ее запускает. Вот обе части:

<SCRIPT LANGUAGE="javascript">

<!-- Скрыть от браузеров, не читающих Javascript

function dateinbar() { var d = new Date(); var y = d.getFullYear(); var da = d.getDate(); var m = d.getMonth() + 1; var t = da + '/' + m + '/' + y; defaultStatus = "Вы прибыли на страницу " + t + "."; } // не скрывать -->

</SCRIPT>

...и команда onLoad в <BODY>:

<BODY BGCOLOR="хххххх" onLoad="dateinbar()">

Эффект скрипта можно увидеть в строке состояния. Этим же скриптом мы пользовались для получения даты на прошлыx уроках. Сначала первая часть скрипта устанавливает функцию. Потом команда в строке <BODY> ее запускает. Давайте сначала разберем функцию.

Схема довольно понятная. Вы пишете "function" и даете ей любое имя, точно так же, как мы делали с переменными. Оно может быть какой угодно длины, если в нем нет пробелов и это слово уже не участвует в JavaScript. Но обратите внимание, что после имени функции стоят круглые скобки, как и после метода. То есть, создавая функцию, мы как бы создем новый метод для выполнения задачи. На этот раз выберем имя "dateinbar()" (дата в строке состояния), потому что это функция и делает — помещает дату в строку состояния. Команды, из которых состоит функция, должны быть заключены в фигурные скобки {}.

Текст внутри фигурных скобок должен быть вам уже знаком. Тот же скрипт мы использовали в предыдущем примере - создается переменная для года, еще одна для числа, еще одна для месяца, затем четвертая для даты целиком. Последняя команда новая:

defaultStatus = "Вы прибыли на страницу " + t + ".";

defaultStatus (строка состояния по умолчанию) - свойство объекта window. Его цель - поместить текст в строку состояния внизу окна браузера. Написать просто window.status нельзя, потому что такая схема используется для события, например, с командой onClick. Раз строка состояния не находится внутри команды HTML, берем defaultStatus.

Команда "onLoad="

Это новый обработчик. Команда onLoad (на вход, загрузку) говорит браузеру, что, загружая страницу, он должен выполнить следующее. В нашем случае следует функция dateinbar{}. Эта команда почти всегда располагается в строке <BODY> документа HTML. И почти всегда за ней следует функция, но это необязательно. Можно с таким же успехом поместить туда и команду объект.метод.

Расположение элементов

Это имеет не последнее значение. Вы знаете, что onLoad идет в строке BODY. Скрипт с функцией должен находиться между командами <HEAD> и </HEAD>. Хотя на самом деле его можно поместить где угодно, но если вы расположите его после команды onLoad, он заработает только после того, как загрузится вся страница. Поместив скрипт перед командой onLoad, вы помещаете его в память компьютера, и когда onLoad вызовет его, он будет готов к работе.

Практически любой набор команд JavaScript можно записать в виде функции.

В следующем примере 2.7 создается функция, которая вызывает два запроса (prompt). Первый просит пользователя ввести свое имя, второй - отчество. Затем та же функция вызвает окно предупреждения (alert) c текстом: Привет, имя отчество. Добро пожаловать на мою замечательную страницу по адресу: адрес страницы! (рис.2.7).

Пример 2.7. Создание запроса с помощью функции

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<TITLE>Моя замечательная страница</TITLE>

<SCRIPT type="text/javascript">

function hello()

{

var first = prompt("Будьте добры, напишите свое имя", "Василий")

var second = prompt("Будьте добры, напишите свое отчество", "Алибабаевич")

var page = document.location;

var ttl = document.title;

alert("Привет, " + first + " " + second + ". Добро пожаловать на " + ttl + " по адресу: " + page + "!")

}

</SCRIPT>

</HEAD>

<BODY onload=hello()>

<H1>Моя страница</H1>

</BODY>

</HTML>

Нужны две команды prompt, одна сразу за другой. Затем какая-либо переменная, которая напечатала бы название страницы (например, «Моя замечательная страница»). Для этого это, нужно поместить текст в заголовок и создать переменную для команды document.title. Затем нужно создать переменную для document.location. Все это затем вставить в команду alert. Все это должно содержаться в функции, а функция должна запускаться командой onLoad в строке BODY. Название функции - hello().

Соседние файлы в папке CIT