|
Примеры, примеры, примеры...
Теперь, когда язык JavaScript перестал быть для вас мечтой, а стал рабочим инструментом, вас ожидает обзор наиболее распространенных в сети сценариев JavaScript. Данная глава полностью посвящена примерам, в которых осуществляется большая часть самых распространенных эффектов JavaScript. Вы также освоите новые сценарии и способы, которыми их можно изменить, чтобы использовать на вашем Web-сайте. Эта глава посвящена следующим темам:
Пример 1. Дата последнего изменения Web-страницыПример. Из всех сценариев, приведенных в данной главе, этот наиболее простой и короткий. Если посетители вашего Web-сайта будут знать, когда в последний раз изменялась страница, то они смогут решить, стоит ли вообще ее читать. <html>
В данном примере используется один метод и одно свойство объекта document. Свойство lastModified возвращает дату последнего сохранения страницы, а метод write () отображает эту информацию на Web-странице (см. рис. 15.1). Рис. 15.1. Дата и время последнего изменения
Поскольку вы хотите указать дату последнего изменения страницы, вам придется перенести блок SCRIPT из заголовка в теле страницы. Можно разместить его в массиве страницы в любом удобном для вас месте. Усовершенствование сценария Изменить сценарий невозможно. Пример 2. ЧасыПример. Часы - излюбленное средство многих разработчиков, желающих сделать свою Web-страницу более динамичной. В данном примере (пригодном как для браузера Internet Explorer, так и для Netscape Navigator) время указывается в окне ввода. Результат представлен на рис. 15.2. <html>
Усовершенствование сценария Пример. Если удалить из сценария несколько строк (все упоминания о AM и РМ и оператор if, в котором из показаний часов после полудня отнимается 12), вы получите армейские часы с 24-часовым циферблатом (см. рис. 15.3). <html>
Рис. 15.2. Часы на Web-странице
Рис. 15.3. Армейские часы на Web-странице
Пример 3. Обратный счетчикПример. Счетчик удобен в тех случаях, когда вы хотите указать промежуток времени, оставшийся до изменения страницы или изображения, если у вас предусмотрено, допустим, регулярное обновление изображений. Обновление страницы производится с помощью соответствующего метатэга (он ставится после тэга <title>). Результат представлен на рис, 15.4. <html>
Рис. 15.4. Действующий обратный счетчик
Усовершенствование сценария Счетчик можно слегка подправить. Возможно также изменение начального показания счетчика (значение переменной х) или интервала (значение переменной у). Пример 4. Проверка формыЕсли на вашей Web-странице имеется какая-либо форма, скорее всего вам хотелось бы снизить количество ненужных или неправильно введенных в нее сведений. Проще всего добавить сценарий, который станет проверять отправляемую вам информацию. Пример. Здесь будет проверяться одно поле ввода, в котором требуется указать некоторые сведения. Если поле остается пустым, сценарий откажется подтвердить ввод информации и потребует ввести текст (см. рис. 15.5). <html>
Подобный сценарий не позволит пользователю отправить незаполненную форму. К тому же благодаря методу focus () курсор возвращается обратно в поле ввода. Усовершенствование сценария Если речь идет о подтверждении введенных данных, совершенствовать сценарий можно до бесконечности - одной этой теме можно посвятить целую книгу. Ниже приводится один полезный пример. Пример. Пользователю предлагается дважды ввести пароль, чтобы проверить правильность ввода. Несовпадение строк свидетельствует об ошибке, и лучше ее выявить сразу, до того как пользователь попытается ввести свой пароль еще раз. На рис. 15.6 показано окно предупредительных сообщений, появившееся на экране в результате выполнения сценария. Рис. 15.5. Поле ввода осталось незаполненным
<html>
Рис. 15.6. Два пароля должны совпасть
Если два введенных пароля не совпадают, оба поля очищаются и курсор возвращается в первое поле, готовое к вводу новых данных. Если пароли совпали, информация принимается как обычно. Пример 5. ПрокруткаПрокруткой (rollover) называется замена одного изображения другим при наведении на него курсора. Часто этот эффект применяется к изображениям с функциями гиперссылок, но это вовсе не обязательно. Пример. Ниже приводится пример выполнения прокрутки: <html>
Смысл оператора if состоит в том, чтобы исключить браузеры, поддерживающие язык JavaScript, в которых неизвестен элемент document.images. Этот прием не позволяет использовать сценарий в браузерах, не поддерживающих, по меньшей мере, JavaScript 1.1, — в этих случаях сценарий не станет выполняться. На рис, 15.7 показан результат использования прокрутки. Усовершенствование сценария В данном случае можно внести множество изменений, но все они однотипны. Вы можете применять больше прокруток к различным изображениям, увеличивать или уменьшать изображения и т.д. Пример 6. Сообщение в строке состоянияЕще один распространенный эффект JavaScript — движущееся сообщение в строке состояния браузера. Это отличный способ предоставить пользователю некоторое количество информации, исключив применение окон сообщений. Хотя строка состояния коротка и не слишком заметна, ее использование все же достаточно эффективно. Рис. 15.7. Прокрутка в действии
Пример. Далее приводится простой пример размещения информации в строке состояния, когда пользователь наводит курсор на изображение с гиперссылкой: <html>
Если навести курсор на изображение или гиперссылку, в строке состояния браузера появляется сообщение (см. рис. 15.8). Рис. 15.8. Сообщение в строке состояния
Примечание Выражение return true требуется для выполнения сценария. Усовершенствование сценария Пример. Одно из самых популярных усовершенствований данного сценария - вывод не статичного, а движущегося сообщения. Ниже дан пример такого эффекта (см. рис. 15.9). <html>
Рис. 15.9. Движущееся сообщение в строке состояния
В данном сценарии JavaScript определяющим является выражение: msg = msg.substring(1,msg.length) + msg.substring(0,1); Именно в этой части сценария осуществляется изменение первоначального сообщения, хранящегося в переменной msg. Справа от знака равенства стоит первоначальное сообщение. Слева - измененный вариант, в котором при каждом шаге берется первый символ выводимой на экран фразы и помещается в ее конец, что создает иллюзию движущегося текста. В действительности же изменяется расположение символов в строке - первый символ становится последним. Итак, рассмотрим составляющие равенства:
То есть на каждом этапе выполнения сценария (определяемом выражением setTimeout("scrollMsg()",150), которое стоит в следующей строке) процесс повторяется - первая буква перемещается в конец фразы. Сценарий запускается снова через каждые 150 мс. Это произвольное значение, и вы можете его изменить. Дальнейшее усовершенствование сценария Постоянно движущийся текст может раздражать некоторых пользователей, так что вполне достаточно использовать его только один раз. Для этого необходимо просчитать, сколько раз должны переставляться символы, и прекратить выполнение данного эффекта в нужный момент. Пример. В настоящем примере используется 45 символов, то есть следует остановиться, перебрав все символы от нулевого до сорок четвертого. <html>
Рекомендация Постоянно движущиеся сообщения в строке состояния могут надоедать пользователям, особенно если они захотят увидеть, куда ведут ваши гиперссылки. Создавайте сообщения, которые остановятся после первого или второго прогона. Пример 7. Управление cookiesВ этом разделе рассматривается управление cookies с помощью сценариев JavaScript. Cookies сейчас используются еще более широко, чем раньше. С их помощью можно персонализировать содержимое вашего Web-сайта для постоянных посетителей (не говоря уже о способности cookies отслеживать информацию, что может оказаться полезным для целей маркетинга и торговли). Cookie - уникальный фрагмент информации, которую Web-сайт сообщает браузеру. Когда браузер попадает на этот же сайт в следующий раз, происходит считывание неизменной информации, содержащейся в cookie. Таким образом становится известно о вашем повторном посещении Web-сайта. Примечание Отдельные фрагменты информации, содержащиеся в cookie, назваются кусками (crumbs). JavaScript предоставляет вам много возможностей, реализуемых с помощью cookies. Вы можете запоминать имена и пароли ваших посетителей, их предпочтения и многое другое. Пример. Давайте начнем со страницы, содержащей одно поле ввода для имени пользователя. Ссылка, позволяющая посетителю перейти на следующую страницу, будет использована для вывода содержимого cookie: <html>
Для создания cookie прежде всего требуется создать новый объект Date под названием expireAt, который будет использоваться для запоминания даты в течение трех месяцев после активизации cookie: <html>
Затем создается «пустая» переменная с названием username: <html>
Потом пишется функция, создающая cookie. Она включает в себя две строки: <html>
В первой строке функция считывает содержимое поля ввода, а во второй создает cookie. Cookie состоит из двух частей. В первой части ("name=" + username) берется значение переменной username и объединяется с выбранной псевдопеременной. (Это не совсем переменная - она больше напоминает название, присваиваемое какой-либо величине.) В результате образуется значение (в данном случае выбрано name). Убедитесь, что в созданной строке нет лишних пробелов; в противном случае результат может быть не совсем таким, как вы ожидаете. Во второй части (";expires=" + expireAt.toGMTString()) устанавливается, когда должен истечь срок действия cookie. Это три месяца после даты создания. Время должно указываться в формате GMT (среднее время по Гринвичу), поэтому применяется метод expireAt.toGMTString(). Последнее, что нужно сделать, - воспользоваться событием onClick (щелчок по гиперссылке) для вызова функции makeCookie(): <html>
Теперь страница завершена. Далее следует создать вторую страницу (под названием page2.htm), в которой будет считываться содержимое cookie. <html>
Функция fillIn() вызывается событием onLoad при загрузке страницы. Оператор if проверяет, не является ли cookie пустым (то есть не отсутствует ли он для данной страницы). В этом случае в поле ввода появляется сообщение "Cookie нет!". Если cookie имеется, то следующий оператор разделяет cookie-строку по знаку равенства, и вторая часть (помеченная как [1], поскольку первая определяется как [0]) присваивается переменной cookieCrumb. Этот фрагмент информации и передается для отображения в поле ввода. Сохранив обе страницы, попробуйте выполнить пример. Откройте первую страницу и что-нибудь впишите в поле ввода (см. рис. 15.10). Затем, щелкнув по гиперссылке в нижней части страницы, перейдите ко второй странице. Вы увидите, что содержимое cookie отобразилось в поле ввода (см. рис. 15.11). Рис. 15.10. Текст, набранный в поле ввода
Рис. 15.11. Содержимое cookies помещено в поле ввода второй страницы
Усовершенствование сценария С cookies можно делать множество интересных вещей. Вы можете сохранять в них практически любые фрагменты информации (даже значения атрибутов CSS). область их применения очень широка. Возможно, на каком-то этапе вы захотите предоставить пользователю возможность удалить cookie. Удаление cookie сводится к изменению конечной даты его использования на уже прошедшую. Пример. В данном случае используется функция, удаляющая cookie путем изменения его конечной даты на дату, соответствующую одному месяцу до текущей системной даты: <html>
Этот способ удаления cookies хорош тем, что дает пользователю возможность изменить решение (см. рис. 15.12). Кроме того, он также позволяет убрать с помощью свойства length все cookies, созданные на вашем сайте для данного пользователя. Вы можете проверить, удалены ли cookies с вашего компьютера, загрузив вторую страницу данного примера (page2.htm). На рис. 15.13 показано, что cookies отсутствуют. Рис. 15.12. Возможность выбора, следует ли продолжать удаление cookies
Рис. 15.13. После удаления cookies не используются
Вот и все! Теперь уже ваша очередь использовать новообретенные навыки написания сценариев JavaScript в сети и находить достойное применение этой мощной и гибкой технологии. Желаем успехов! Кэти и Эдриан. |
||||||