Опубликован: 19.10.2006 | Уровень: для всех | Доступ: платный
Лекция 10:

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

< Лекция 9 || Лекция 10: 12 || Лекция 11 >

Команда "onLoad="

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

Эта команда почти всегда располагается в строке <BODY> документа HTML. И почти всегда за ней следует функция, но это необязательно. Можно с таким же успехом поместить туда и команду объект.метод.

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

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

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

Задание

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

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

Не забудьте создать переменную для адреса страницы.

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

Возможное решение

Это задание требует известной сообразительности. Нужны две команды prompt, одна сразу за другой. Затем какая-то переменная, которая напечатала бы название страницы (например, "Моя замечательная страница"). Мы сделали это, поместив текст в заголовок и создав переменную для команды document.title. Потом потребуется переменная для document.location.

Далее они используются в команде alert. Все это содержится в функции с именем hello(), а функция должна запускаться командой onLoad в строке BODY.

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

<SCRIPT LANGUAGE="javascript">

function hello()
{
var first = prompt("Введите свое имя", "Имя")
var second = prompt("Введите свою фамилию", "Фамилия")
var page = document.location;
var ttl = document.title;
alert("Привет, " +first+ " " +second+ ". 
  Добро пожаловать на " +ttl+ " по адресу: " +page+".")
}

</SCRIPT>

A вот команда BODY в документе:

<body bgcolor="ffffcc" onLoad="hello()">
< Лекция 9 || Лекция 10: 12 || Лекция 11 >
Елена Сапегова
Елена Сапегова

После прохождения теоретической части пришло письмо об окончании теоретической части курса, будет ли практическая часть?

Эдуард Семынин
Эдуард Семынин

Здравствуйте.

Перестали быть видны лекции и тесты практикума по программированию на JavaScript. Уже второй день из моего аккаунта виден лишь план занятий. В чем может быть проблема?

 

Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989