После прохождения теоретической части пришло письмо об окончании теоретической части курса, будет ли практическая часть? |
Массивы
Разбор сценария
<SCRIPT type="text/javascript"> tv=new Array() tv[0]="ОРТ" tv[1]="РТР" tv[2]="ТВЦ" tv[3]="НТВ" tv[4]="ТВ6" num=0
tv=new Array() объявляет tv как массив объектов. С пустыми (скобками) массив может быть какой угодно длины. Можно также указать длину массива, например, tv=new Array(5).
Помните, что массив может иметь множество значений. Можно представить себе массив в виде таблицы:
Обратите внимание, мы заранее указываем переменную num, у которой одно значение, равное 0, и массив tv, который имеет 5 значений.
function picktv() { now=new Date() num=(now.getSeconds())%5 }
Функция picktv() случайно выбирает число от 0 до 4, которое становится индексом tv. Помните, от нуля до четырех ПЯТЬ чисел. То есть если num равно 2, то любимый телеканал — tv[2], или ТВЦ.
function whichtv() { picktv() guess=" " while (tv[num] != guess.toUpperCase()) {guess=prompt("Угадайте мой любимый телеканал: ОРТ, РТР, ТВЦ, НТВ или ТВ6?") if (guess.toUpperCase() == tv[num]) {alert("Это мой любимый телеканал!")} else {alert("Нет, попробуйте еще раз.")}} }
Команда guess=prompt(...) должна находиться полностью на одной строке.
Вот кое-что новое! Видите, первым делом функция вызывает другую функцию, picktv(). Таким образом, когда бы вы ни нажали на кнопку, будет выбираться новый телеканал.
Обратите внимание на строку while (tv[num] != guess.toUpperCase()). Метод или действие toUpperCase() (в верхний регистр) используется для перевода всего, что было введено, в верхний регистр символов.
Программа повторяет цикл While, пока пользователь не угадает правильный телеканал. Фрагмент с циклом While должен быть уже вполне знакомым.
Обратите внимание на операторы If и Else. В этой игре возможны только два результата: либо вы правы, либо ошибаетесь.
Теперь кнопка, которая все это запускает:
<FORM> <INPUT TYPE="button" VALUE="Угадай телеканал!" onClick="whichtv()"> </FORM>
Тут ничего нового.
Еще кое-что о массивах
В JavaScript есть несколько встроенных массивов. Формы можно хранить в массивах. На форму можно ссылаться с помощью document.myform или document.forms[0], если это первая форма. Массивы всегда начинаются с нуля. Вторая форма будет document.forms[1]. Третья — document.forms[2] и так далее...
Изображения также можно хранить во встроенном массиве. Можно ссылаться на pic1.gif как document.pic1.src или как document.images[0].src. Просто продолжайте следовать схеме, указывая номер в [квадратных скобках].
Теперь, наверное, стало понятно, что такое массивы.
Задание
Напишите программу JavaScript, которая содержит кнопку с надписью: "Щелкните, чтобы попасть на случайный сайт". Когда пользователь нажимает ее, выполняется функция, которая выберет случайное число и сайт из массива с помощью команды JavaScript top.location.href = url[num]. top (вершина) — это свойство объекта window, оно относится к главному окну браузера. location.href, другой объект и свойство, содержит адрес URL.
Возможное решение
Это задание очень напоминает пример из этого урока, за исключением того, что нужно указать ряд адресов URL по схеме url[0]. Однако в результате сценарий должен отправить пользователя на выбранную страницу.
<html> <head> <script language="JavaScript"> url=new Array() url[0]="http://www.jsp.newmail.ru/les5.htm" url[1]="http://www.jsp.newmail.ru/les10.htm" url[2]="http://www.jsp.newmail.ru/les15.htm" url[3]="http://www.jsp.newmail.ru/les20.htm" function rand() { now=new Date() num=(now.getSeconds())%4 top.location.href = url[num] } </script> </head> <body> <center> <h2>Случайный URL</h2> <form> <input type="button" value="Случайное блуждание по сайтам!" onClick="rand()"> </form> </center> </body> </html>