Книги в продаже (аннотация + содержание + отрывок)

А. Гончаров
САМОУЧИТЕЛЬ HTML (+ДИСКЕТА).
Цена: 98 р.

Источник: Издательский дом 'ПИТЕР'
Разделы: HTML, DHTML (язык разметки веб-страниц)
Подробнее: Информация от издателя (открывается в новом окне)
Заказ: Оформление покупки (открывается в новом окне)

      Выравнивание данных в ячейках
     
      , и
      Группы колонок: и
      Фреймы
     
     
      Организация переходов по фреймам
     
      Устаревшие и нестандартные элементы
     
     
      и
      XMP и LISTING
     
      </plaintext> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <EMBED> </embed> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <NOEMBED> </noembed> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <MARQUEE> </marquee> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <HPn> </hpn> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BANNER> </banner> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Глава 4. Объекты и формы<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Общие атрибуты объектов <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Рисунки и карты <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <IMG> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <MAP> <AREA> </map> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Элементы объектов <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <APPLET> </applet> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <OBJECT> </object> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <PARAM> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Общие атрибуты форм <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Элементы форм <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <ISINDEX> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FORM> </form> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <INPUT> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <LABEL></label> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Пример формы <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SELECT> <OPTION> </select> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <TEXTAREA> </textarea> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BUTTON> </button> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FIELDSET> <LEGEND> </legend> </fieldset> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Глава 5.Сценарии<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Что такое сценарий <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SCRIPT> </script> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <NOSCRIPT> </noscript> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Язык JavaScript <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Синтаксис <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Управляющие операторы <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Примеры сценариев <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Замена изображения <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Изменение свойств текста <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Метод setTimeout <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Управление формами <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Сценарий для одного элемента <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Глава 6. Приемы разметки гипертекста<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Стиль и традиции <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Не таблица, а табличка <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Заголовок и рисунок рядом <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Мозаичные рисунки <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Объединение ячеек таблицы <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Вложенные таблицы <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Форматирование линии <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Стихотворный текст <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ссылки на файлы мультимедиа <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Компоновка Web-страниц <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Собственная Web-страница <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Глава 7. Создание графики<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Форматы графических файлов <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Создание фона HTML-документа <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Прозрачность для GIF- и PNG-изображений <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Программа Gif Construction Set <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Создание вращающегося значка <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Компоновка сложного GIF-файла <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Создание трехмерной вращающейся фигуры <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Иллюстрация функций Web-страницы <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Фотоморфизм <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Преобразование видео в GIF <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Инструменты рисования в Microsoft Office 2000 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WordArt <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Графический редактор MS Image Composer <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Microsoft GIF Animator <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Глава 8. Редакторы гипертекста<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HoTMetaL PRO 5.0 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Microsoft Word 2000 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Microsoft FrontPage Express <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Microsoft FrontPage 2000 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Netscape Composer <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Приложение А. Шестнадцатеричные числа<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Приложение Б. Свойства таблиц стилей<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Единицы измерения <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Шрифты <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; font-family <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; font-style <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; font-variant <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; font-weight <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; font-size <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; font <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Форматирование текста <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text-indent <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text-align <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text-decoration <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text-shadow <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; letter-spacing <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line-height <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; word-spacing <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text-transform <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; white-space <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; direction <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Свойства списков <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; list-style-type <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; list-style-image <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; list-style-position <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; list-style <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Свойства таблиц <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; display <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; row-span <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; column-span <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border-collapse <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vertical-align <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table-layout <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Свойства границ элементов <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; min-width и max-width <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; min-height и max-height <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; position <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; top, bottom, right, left <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; margin-top, margin-right, margin-bottom, margin-left <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; margin <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; padding-top, padding-right, padding-bottom, padding-left <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; padding <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border-top-width, border-right-width, border-bottom-width, border-left-width <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border-width <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border-top-color, border-right-color, border-bottom-color, border-left-color <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border-color <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border-top-style, border-right-style, border-bottom-style, border-left-style <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border-style <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border-top <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border-bottom <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border-left <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border-right <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; overflow <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; float <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clear <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clip <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; visibility <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; z-index <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Свойства фона и цвета <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; color <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; background-color <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; background-image <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; background-repeat <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; background-attachment <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; background-position <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; background <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Свойства мультимедиа <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; volume <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; speak <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; speech-rate <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pause-before, pause-after <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pause <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cue-before, cue-after <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cue <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; play-during <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; azimuth <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; elevation <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Пользовательский интерфейс <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cursor <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; color, background-color <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Приложение В. Состав прилагаемой дискеты<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Приложение Г. Источники информации в Интернете по тематике книги<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Алфавитный указатель<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ОТРЫВОК<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5Сценарии<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Что такое сценарий <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SCRIPT> </script> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <NOSCRIPT> </noscript> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Язык JavaScript <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Синтаксис <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Управляющие операторы <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Примеры сценариев <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Замена изображения <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Изменение свойств текста <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Метод setTimeout <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Управление формами <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Сценарий для одного элемента <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Многие авторы заинтересованы в том, чтобы их страницы имели современный вид, были многофункциональными и динамичными. Для преодоления ограничений HTML применяются разные средства: апплеты, объекты, каскадные таблицы стилей. Но самым популярным приемом является использование сценариев. Сценарий - это программный код, который включается в текст страницы в виде исходного текста и выполняется броузером при просмотре страницы. Сценарий может быть написан на языке JavaScript, разработанном фирмой Netscape, или на Visual Basic Script (VBScript), разработанном фирмой Microsoft. Поскольк<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; у JavaScript является признанным стандартом, и, что немаловажно, стандартом де-факто (этот язык используется на подавляющем большинстве страниц), то мы остановимся на нем при рассмотрении примеров.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Что такое сценарий<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SCRIPT> </script><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Этот элемент позволяет отделить текст программы-сценария от остальной информации страницы. Элемент SCRIPT должен включать атрибут language, который определяет язык и может принимать следующие значения:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; javascript - код на языке JavaScript; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tcl - код на языке Tcl; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vbscript - код на языке VBScript.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Может оказаться удобным хранить тексты программ в отдельном файле. Тогда элемент SCRIPT надо снабдить ссылкой на этот файл: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src="URL" <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; По традиции файлы, содержащие программы на JavaScript, имеют расширение JS. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Атрибут type тоже может указывать на тип языка, хотя его применение не является обязательным. Чтобы соблюсти все правила, внутри элемента можно поместить такое определение: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type="text/javascript" <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Одной из особенностей сценариев является возможность изменения содержимого страницы в результате работы программы. Но это только возможность, а не правило. С помощью атрибута defer (который не принимает никаких значений) можно "сообщить" броузеру, что таких изменений внесено не будет. В некоторых случаях это позволяет ускорить загрузку страницы. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Из стандартных атрибутов можно использовать атрибут charset. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Элемент SCRIPT (или ряд таких элементов) может располагаться как внутри секции HEAD, так и внутри секции BODY. Если сценарий находится внутри элемента BODY, возможна ситуация, когда какой-либо броузер, не поддерживающий элемент SCRIPT, воспримет программный код как обычный текст и выведет его на экран. Чтобы этого не случилось, код сценария вводят как комментарий:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SCRIPT language="язык"> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <!-- Все, что относится к коду сценария --> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </script><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Современные броузеры "знают" этот прием и игнорируют символы комментария. Если в тексте сценария нужно ввести комментарий, то для этого используют другое обозначение: в начале строки вводят две косые черты //. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Сценарий выполняется в момент загрузки страницы, то есть когда на экране еще видно ее содержание. В листинге 5.1 представлен пример простейшего сценария.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Листинг 5.1. Вывод сообщения в окне (1 вариант)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <HTML> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <HEAD> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <META http-equiv="Content-Type" content="text/html; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; charset=windows-1251"> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <TITLE>Простейший сценарий</title> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SCRIPT language="javascript"> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("Приветствуем вас на этой странице!") <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </script> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </head> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BODY background="fon01.gif"> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <P> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <CENTER> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <H1 style="color : maroon">З а г о л о в о к 1</h1> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </center> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </body> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </html><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Это обычная страница, но в нее включен сценарий из одной строки. С помощью метода alert() перед загрузкой выводится сообщение (в данном случае приветствие), показанное на рис. 5.1. До тех пор пока пользователь не щелкнет на кнопке OK, загрузка не будет продолжена.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Тот же самый сценарий можно выполнить и другим способом: создать функцию и связать ее с событием. Загрузка страницы соответствует событию onload элемента BODY (листинг 5.2).<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Листинг 5.2. Вывод сообщения в окне (2 вариант)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <HTML> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <HEAD> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <META http-equiv="Content-Type" content="text/html; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; charset=windows-1251"> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <TITLE>Простейший сценарий</title> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SCRIPT language="javascript"> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function DoFirst() <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("Приветствуем вас на этой странице!") <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </script> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </head> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BODY background="fon01.gif" onload="DoFirst()"> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <P> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <CENTER> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <H1 style="color : maroon">З а г о л о в о к 1</h1> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </center> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </body> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </html><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Но, разумеется, сценарий не обязательно должен выполняться во время загрузки страницы. В разделе "Стандартные атрибуты" главы 3 приведены события, которые определены для различных элементов HTML.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ПРИМЕЧАНИЕ Тексты страниц можно найти и в файлах Simple.htm и Simple2.htm на прилагаемой дискете. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <NOSCRIPT> </noscript><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; На тот случай, если страница будет просматриваться в броузере, не поддерживающем сценариев, предусмотрен элемент NOSCRIPT. Современные программы просмотра игнорируют его содержимое. Этот элемент можно использовать несколькими способами. Во-первых, внутри него можно разместить предупреждение наподобие следующего: "Ваш броузер не может воспроизвести сценарии, необходимые для просмотра этой страницы!" Во-вторых, внутри элемента можно создать упрощенную версию страницы, без скриптов. В-третьих, можно создать ссылку на другой документ. Элемент NOSCRIPT должен об<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; язательно снабжаться конечным тегом. Из атрибутов допускаются только id и style.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Язык JavaScript<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; В данной книге не приводится полное описание языка JavaScript. Необходимую справочную информацию легко найти в Интернете и специализированных изданиях. Есть, например, хороший справочник по JavaScript Рика Дарнелла ("Питер", 1999 г.). Но познакомиться с основными конструкциями языка, наиболее популярными его возможностями требуется обязательно, тогда дальнейшее его освоение не составит труда. Надо также заметить, что язык постоянно совершенствуется (пополняется новыми конструкциями). В последующих разделах будет рассмотрено несколько полезных примеров.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Синтаксис<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Как и всякий современный язык программирования, JavaScript имеет традиционную часть, включающую операторы присваивания, математические и строковые функции, операторы и объектно-ориентированную часть, к которой относятся объекты, события, свойства и методы. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Основной конструкцией языка является функция. Она создается по следующему шаблону: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function ИмяФункции(параметр1, параметр2...) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Текст программы <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return выражение <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Обязательными элементами являются: ключевое слово function, круглые скобки и фигурные скобки, определяющие тело функции. Для выполнения функции достаточно указать ее имя в сценарии, например: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ИмяФункции(параметр) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Внутри функции могут находиться вызовы других функций, и, кроме того, функция может вызывать саму себя. Если функция указана в качестве значения атрибута события, она выполняется, когда происходит соответствующее событие. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; С помощью оператора return функция может возвратить определенное значение. Тогда функцию можно использовать в операциях присваивания или проверки условий. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; В программе могут использоваться переменные различных типов. Если переменная определена вне функции, она является глобальной, то есть доступной для всех функций страницы. Переменные, определенные внутри функции, являются локальными, действующими только в пределах функции. Разные функции могут независимо использовать локальные переменные с одинаковыми именами. Для определения переменной можно указать ключевое слово var, хотя это и не обязательно: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var Color01 = "red" <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Color01 = "red" <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Тип переменной определяется в момент присвоения ей значения. Для обозначения строковых констант используются двойные или одинарные кавычки. Два типа кавычек необходимы на тот случай, когда строковая константа содержит символы кавычек, например: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WelcomeMessage = 'Добро пожаловать на сайт компании "Tip Top"' <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Числовые значения могут задаваться разными способами: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count = 1 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; X1 = 3.55 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; F5 = 7.674E-5 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Логические переменные могут принимать значения false (ложь) и true (истина). <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; С помощью квадратных скобок определяются элементы массивов: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mass[23] <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Математические операции выполняются следующим образом:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var01 = var02+3 - сложение; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var03 = 10*(var04-var05) - вычисления со скобками.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Для вызова математических функций используется объект Math: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var06 = Math.sqrt(var07) - вычисление значения функции (квадратного корня). <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Кроме традиционных операций, можно выполнять операцию поиска остатка от деления, например: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var08=var09 % 4 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Существуют унарные операции:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var10++ - увеличение значения переменной на 1; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var05-- - уменьшение значения переменной на 1.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; В условных или управляющих операторах используются операторы сравнения. Для составления логического выражения, кроме круглых скобок, допустимы следующие знаки:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; == - равно; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; != - не равно; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; > - больше; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; >= - больше или равно; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; < - меньше; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <= - меньше или равно.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Кроме них, используются логические операторы:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ! - логическое отрицание; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; || - логическое ИЛИ; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; && - логическое И.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Управляющие операторы<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Цикл do...while позволяет выполнять программный код до тех пор, пока выполняется условие. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; строка 1 ; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; строка 2 ; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (условие) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Обратите внимание, что тело оператора, так же как и тело функции, выделяется при помощи фигурных скобок. Строки кода (команды, операции присваивания, вызовы функций и др.) завершаются (отделяются друг от друга) точкой с запятой. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Данный цикл можно записать и так: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (условие){ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; строка 1 ; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; строка 2 ; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Цикл for используют для того, чтобы выполнить программный код заданное число раз. В качестве примера показана программа, позволяющая создать числовой массив и заполнить его нулями. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var Massiv = new Array(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var n = 25; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (i = 0; i < n; i++) { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Massiv[i] = 0; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; В данном примере показан цикл с тремя параметрами: начальным значением счетчика, условием выполнения цикла и командой изменения значения счетчика. Это традиционный способ использования такого цикла, но ни один из параметров не является обязательным. Если отсутствует условие, то цикл станет выполняться до тех пор, пока не будет прерван другим способом. Если отсутствует команда изменения значения счетчика, ее может заменить аналогичная команда в теле цикла. Если количество параметров меньше трех, символы "точка с запятой" определяют, какой параметр испо<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; льзуется. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Есть ряд вспомогательных операторов, используемых совместно с циклами. С помощью оператора break можно прервать работу любого цикла. Оператор continue позволяет прервать выполнение цикла и начать проверку условия. В зависимости от условия цикл может быть прерван окончательно или его выполнение может быть начато еще раз. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Условный оператор if...else используется там, где выполнение программы надо поставить в зависимость от значения выражения (условия). Шаблон оператора таков: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (условие) { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; строки кода <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; строки кода <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Блок else (выполняемый, если условие имеет значение false), не обязателен. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Оператор switch...case тоже является условным, но выражение, представляющее собой его параметр, не обязательно должно быть логическим. Оно может принимать любые значения. Важно только, чтобы эти значения были указаны как метки в блоках case. Тогда будет выполнен один из многих вариантов кода. Если значение выражения не равно ни одной метке, выполняется блок default. Ниже приведен шаблон оператора. Обратите внимание, что фигурные скобки использованы только один раз, так как варианты кода разделены операторами case. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch (выражение) { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case метка1 : <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; строки кода <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case метка2 : <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; строки кода <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default : <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; строки кода }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Примеры сценариев<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Замена изображения<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Один из самых модных сценариев - замена одного рисунка другим в тот момент, когда над рисунком появляется указатель мыши. Таким способом можно изменять вид надписи (текст или фон), вводить изображения нажатой и отпущенной кнопки, создавать всевозможные визуальные эффекты, "оживляющие" страницу. Листинг 5.3 содержит код подобной страницы. На его примере мы разберем, как совершается замена изображений.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Листинг 5.3. Сценарий для замены изображения<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <HTML> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <HEAD> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <META http-equiv="Content-Type" content="text/html; charset=windows-1251"> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <TITLE>Замена изображений</title> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SCRIPT language="javascript"> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AgentName = navigator.appName; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AgentVer = parseInt(navigator.appVersion); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (AgentName == "Netscape" && AgentVer <= 2){ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; version = "n2"; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; version = "x3"; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (version == "x3") { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Первая кнопка <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IMAGE1on = new Image; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IMAGE1on.src = "str1on.jpg"; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IMAGE1off = new Image; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IMAGE1off.src = "str1.jpg"; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Вторая кнопка <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IMAGE2on = new Image; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IMAGE2on.src = "str2on.jpg"; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IMAGE2off = new Image; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IMAGE2off.src = "str2.jpg"; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Указатель сверху <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function mouse_on(objekt) { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (version == "x3") { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imgOn = eval(objekt + "on.src"); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document[objekt].src = imgOn; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Указатель убран <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function mouse_off(objekt) { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (version == "x3") { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imgOff = eval(objekt + "off.src"); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document[objekt].src = imgOff; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </script> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </head> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BODY> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <TABLE align="left" border=0 cellspacing=3 cellpadding=8> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <TR> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <!-- Первая кнопка --> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <TD><A href="URL" onMouseover="mouse_on('IMAGE1')" <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onMouseout="mouse_off('IMAGE1')"><IMG src="str1.jpg" name="IMAGE1" <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alt="Page 1" border=0 height=36 width=151></a></td> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <!-- Вторая кнопка --> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <TD><A href="URL" onMouseover="mouse_on('IMAGE2')" <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onMouseout="mouse_off('IMAGE2')"><IMG src="str2.jpg" name="IMAGE2" <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alt="Page 2" border=0 height=36 width=151></a></td> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </table> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </body> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </html><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Весь сценарий находится внутри элемента SCRIPT. Первые строки кода не имеют прямого отношения к замене графики. Дело в том, что броузеры ранних версий не поддерживают некоторые конструкции JavaScript, поэтому, чтобы предотвратить возникновение ошибки, необходимо проверить тип и версию броузера. Чаще всего код сценария надо защищать от броузера Netscape Navigator 2.x. В нашей программе создаются две переменные AgentName и AgentVer, которые позволяют определить название и версию броузера соответственно. Для этого указан объект navigator (представляющий используемый броузер). Кроме эт<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ого необходимы:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; appName - свойство, возвращающее название броузера; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; appVersion - свойство, возвращающее номер версии броузера; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parseInt - функция округления до целого (т. к. номер версии может быть "дробным").<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Теперь, проведя проверку этих переменных, мы можем создать переменную version, которая будет хранить значение n2, если используется вторая или более ранняя версия Netscape Navigator. Значение x3 обозначает все другие программы просмотра. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Теперь можно приступать к рисункам. Чтобы заменить один рисунок другим, надо изменить свойство src графического объекта: ссылку на графический файл. Поэтому вначале создаются две объектные переменные IMAGE1on и IMAGE1off типа Image. Для них определяются необходимые графические файлы:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str1on.jpg - рисунок, который должен появиться под указателем мыши; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str1.jpg - рисунок, который сразу помещается на страницу, и который появляется, когда указатель убран.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Теперь мы имеем два изображения кнопки. Саму кнопку (с надписью "Страница 1") можно увидеть в главе 8 на рис. 8.23, но в данном случае иллюстрация мало что объясняет, так как работу сценария нужно наблюдать в действии. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Удобство предварительного определения файлов очевидно: если на странице много кнопок, целесообразно сосредоточить все ссылки в одном месте. В нашем примере используются две кнопки, поэтому для второй тоже задаются два файла формата JPG. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; В нашем примере объектом, вид которого мы хотим динамически изменять, является гиперссылка с содержимым в виде рисунка. Для элемента A задано событие "указатель мыши сверху": onMouseover="mouse_on('IMAGE1')". Естественно, в сценарии должна находиться соответствующая функция. Разберем, как работает функция mouse_on(objekt). Ее аргументом является имя элемента IMG, которое задано с помощью атрибута name="IMAGE1". Таким образом, задается однозначное соответствие между объектами, которыми оперирует сценарий, и элементами, расположенными на странице. Работа функции тоже начинается с пров<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ерки версии броузера, так как в теле функции присутствует метод eval, не поддерживаемый ранними версиями Netscape Navigator. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Этот метод работает достаточно интересно. Его аргумент - текстовая строка, которая должна представлять собой команду JavaScript. С помощью метода eval эта команда выполняется. Если в нашем примере такой командой окажется "IMAGE1on.src", то переменная imgOn получит в качестве значения ссылку на графический файл. Это будет не "str1on.jpg", как можно подумать, а URL, например: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file:///C:/ПАПКА/str1on.jpg <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Осталось изменить свойство элемента рисунка. Это делается с помощью объекта document и имени соответствующего элемента IMG. Объект document можно считать массивом, в качестве индекса которого выступают имена расположенных на странице элементов. Ну, а свойство src говорит само за себя. Вторая функция (mouse_off) отвечает за возврат рисунка к прежнему виду и работает аналогично. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Возможно, у вас возникнет подозрение: а не слишком ли сложно запрограммирован сценарий? Действительно, кое-что в тексте программы можно упростить. Например, в сценарии могла бы выполняться такая команда: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document["IMAGE1"].src = "str1on.jpg"; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; В ней все параметры заданы явно, и работать такая команда может только с конкретным элементом IMG. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Вид функции mouse_on можно изменить. Пусть, к примеру, у нее будут два аргумента: имя элемента и имя графического файла:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function mouse_on(objekt,risunok) { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (version == "x3") document[objekt].src = risunok; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Тогда элемент A должен выглядеть так: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="URL" onMouseover="mouse_on('IMAGE1','str1on.jpg')" <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onMouseout="mouse_off('IMAGE1','str1.jpg')"><IMG src="str1.jpg" <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name="IMAGE1" alt="Page 1" border=0 height=36 width=151></a> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; В этой конструкции имеются три ссылки на графические файлы. Теоретически, для кнопки можно предусмотреть три изображения: "вид после загрузки страницы", "нажатая кнопка", "отпущенная кнопка". Это позволяет визуально различать кнопки, на которых был выполнен щелчок, и те, которые пользователь оставил без внимания.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Изменение свойств текста<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Web-страница, текст которой приведен в листинге 5.4, содержит элементы абзаца и заголовка. Для заголовка запрограммированы события мыши так, чтобы цвет и содержание текста изменялся в зависимости от положения указателя.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Листинг 5.4. Сценарий для замены свойств текста<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <HTML> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <HEAD> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <TITLE>Изменение цвета текста</title> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <META http-equiv="Content-Type" content="text/html; charset=windows-1251"> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SCRIPT> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Если указатель мыши установлен <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function TextOnMouseOver(){ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element1 = window.event.srcElement ; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Text1 = document.all("Par1") ; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (Element1.tagName == "H2") { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element1.style.color = "red" ; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Text1.innerText="Надпись стала красной?" <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Text1.style.color="maroon" <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Если указатель мыши убран <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function TextOnMouseOut() { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element1 = window.event.srcElement ; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Text1 = document.all("Par1") ; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (Element1.tagName == "H2"){ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element1.style.color = "green" ; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Text1.innerText='Установите указатель мыши на надпись "Заголовок"' <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Text1.style.color="blue" <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </script> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </head> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BODY bgcolor="white" text="green"> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <P id="Par1">Установите указатель мыши на надпись "Заголовок"</p> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <TABLE border=0 cellspacing=0 cellpadding=0><TR> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <TD><H2 onmouseover=TextOnMouseOver() onmouseout=TextOnMouseOut()> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Заголовок</h2></table> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </body> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </html><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Легко заметить, что в элементе H2 информация о сценарии минимальная: указаны только имена функций. Вся обработка событий сосредоточена в элементе SCRIPT. Когда указатель мыши попадает в область заголовка, выполняется функция TextOnMouseOver(). Поскольку эта функция не получает никаких параметров, необходимо, в первую очередь, определить, с каким элементом связано событие. Для этого создается объектная переменная Element1. В тексте программы используются:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window - объект, определяющий окно броузера; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; event - объект, содержащий информацию о событиях; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; srcElement - свойство, определяющее элемент, в котором произошло событие.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Переменная Text1 связана с конкретным абзацем (элементом P) при помощи атрибута id, задающего имя элемента. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Теперь все готово для активных действий. С помощью свойства tagName проверяется, действительно ли событие связано с элементом H2. Таким образом, сценарий будет выполняться для всех заголовков второго уровня, расположенных на странице. С помощью конструкции style.color для заголовка задается красный цвет. С помощью свойства innerText заменяется текст абзаца. Вторая функция, которая выполняется, когда указатель мыши покидает область заголовка, работает так же, но константы в ней использованы, естественно, другие. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Обратите внимание, что элемент H2 расположен внутри элемента TABLE. Дело в том, что элемент заголовка занимает всю строку, и слева от надписи остается пустое пространство (рис. 5.2). Если пользователь поместит указатель мыши на пустое место, сценарий тоже будет выполнен. Это может показаться неестественным, так как все привыкли, что реакция возникает, когда выбран конкретный объект (в данном случае надпись). Таблица, которую не видно при просмотре, позволяет ограничить область действия элемента H2 только его текстом.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <hr size=1 width=98%> <p align=center><small><em>Самоучитель HTML (+дискета). / А. Гончаров - СПб: Питер, 2002. - 240 с.</em></small></p> </td></tr></table></center></div> <p align="center"> <a href="http://eup.ru">Экономика и управление</a> | <a href=http://pravo.eup.ru>Право/a> | <a href=http://subschet.ru>Бухгалтерский учет и налоги</a> | <!--1371804776--> </p> <script language="JavaScript" type="text/javascript" src=../../GlobalScript/_down.js> </script> </form></body></html>
      Книга посвящена HTML — популярному языку гипертекстовой разметки документов, позволяющему создавать интерактивные публикации в Интернете. В ней приведено описание самого языка, обсуждаются особенности применения графики на Web-страницах, техника подготовки данных для распространения в Интернете и другие задачи, стоящие перед создателями HTML-документов. Все примеры записаны на прилагаемую к книге дискету, поэтому текст любого HTML-файла можно просмотреть, открыв файл в броузере или текстовом редакторе.
     
     
      СОДЕРЖАНИЕ
      Предисловие
      От издательства
      Глава 1. Введение
      Для кого предназначена эта книга
      Что есть в этой книге
      Немного истории
      HTML как явление нашей жизни
      Терминология
      Особенности гипертекста
      Просмотр Web-страниц
      Microsoft Internet Explorer
      Netscape Communicator
      Глава 2. Синтаксис HTML 4
      Версии HTML
      Анатомия Web-страницы
     
     
     
     
     
     
     
     


     

     
     
      Правила синтаксиса
      Кодирование символов
      Использование спецсимволов
      Типы данных
      Управление цветом
      Глава 3. Основные элементы HTML версии 4
      Заголовок страницы
     
      < STYLE > и
     
      Стандартные атрибуты
      Атрибуты событий
      Форматирование текста
     


     

     
     
 

     

     
     
     
     
      или
     
     
     
     
      и
     
     
     
      Табуляция, пробелы, переносы...
      Элементы содержания
      и
     

     
     
     

     
      , и
     
     
     
      Таблицы стилей
     
      Классы
      Универсальные классы: атрибут id
      Каскадные таблицы стилей: элемент
     
и
      Выводы
      Списки
     

     

     

      Гиперссылки
     
     
      Таблицы
     

     

     

      Группы строк: