@HEAD

Указывает, что дальше идут заголовочные данные. Каждый пункт новостей начинается со строки @HEAD (то есть заголовка). Заголовочные данные могут располагаться на нескольких строках. Следующий за ними дескриптор @URL, @MSG или @END прекращает действие дескриптора заголовка.

@URL

Указывает, что дальше идут данные гиперссылки. Аплет будет вос­принимать весь текст до следующего дескриптора @end как часть гиперс­сылки, на которой посетитель может щелкнуть, чтобы загрузить другую Web-страницу.

@FRAME

Указывает, что дальше идет имя целевого фрейма или целевого окна. Дескриптор @FRAME должен находиться после дескриптора @URL рас­положенного на предыдущей строке.

@MSG

Указывает, что дальше идут данные сообщения. Чтобы завершить сообщение, необходимо поместить дескриптор @END в строку, следующую за последней строкой сообщения.

@END

Указывает, что строка в файле новостей является завершающей стро­кой сообщения.

Примером того, как определять заголовки, гиперссылки и сообщения для отображения аплетом, может послужить содержимое файла News.txt, который вы извлекли из архива NewsScroller.zip.

Анимация синусоидальных колебаний изображения с помощью аплета

В предыдущем практикуме было показано, как выполнить анимацию текста с помощью аплета, который перемещает текст слева направо (или справа налево) по экрану в соответствие с синусоидальным законом. Вместо того, чтобы для со­здания анимированного баннера прокручивать текст по синусоиде, можно вос­пользоваться аплетом sinLogo.class для анимации статического изображения, например, логотипа, как показано на рис. 9.19.

НЕ нашли? Не то? Что вы ищете?

Рис. 9.19. Два представления одного и того желоготипа:

слева — статический логотип, справа — анимированный логотип

Обратите внимание, что буквы в верхнем логотипе на рис. 9.19 находятся на одном уровне. Символы же в нижнем логотипе находятся на неодинаковой высо­те, демонстрируя, как аплет выравнивает нижнюю часть логотипа вдоль синусоиды.

ПРАКТИКУМ

Аплет sinLogo.class вместе с исходным кодом доступен на сайте издателя рус­скоязычной редакции этой книги. Скопировав архив sinLogo.zip в папку на своем компьютере, извлеките из него файл sinLogo.class. Затем, чтобы исполь­зовать аплет на своей Web-странице, скопируйте sinLogo.class и изображение, анимацию которого необходимо выполнить, в ту же папку, где находится код Web-страницы. Далее вставьте приведенные ниже строки в HTML-код Web-стра­ницы, туда, где должен будет появиться анимированный текст:

<applet code = "SinLogo. class" width = "363" height = "97">

<param name = "image_logo" value = "Web4.gif">

<param name = "angle_add" value = "1.9">

<param name = "bg_red" value = "0">

<param name = "bg_green" value = "0">

<param name = "bg_blue" value = "0">

</applet>

Для настройки анимационного эффекта, создаваемого аплетом, используются следующие параметры:

image_logo

Имя и путь GIF - или JPEG-файла, анимацию которого необ­ходимо выполнить с помощью аплета.

angle_add

Коэффициент, то есть величина, на которую аплет смещает частицы изображения от базовой синусоиды. Чем выше это значение, тем больше будет амплитуда движения вверх-вниз различных частей изображения. По умолчанию — "0.5".

bg_red

Значение красной RGB-составляющей цвета фона (заданное в десятичном виде).

bg_green

Значение зеленой RGB-составляющей цвета фона (заданное в десятичном виде).

bg_blue

Значение синей RGB-составляющей цвета фона (заданное в десятичном виде).

Аплет работает, превращая цвет пикселей в части изображения в цвет фона, в то же время превращая цвет пикселей в фоне другой части картинки в цвет изображения. Таким образом, самое главное — это задать параметры bg_red, bg_green и bg_blue, которые сообщают аплету цвет фона, чтобы аплет смог со­здать видимость того, что частички изображения исчезают и вновь появляются по синусоидальному закону.

Редактирование исходного Java-кода

для компиляции пользовательского аплета

На протяжении этой главы вы настраивали аплеты в соответствии со своими потребностями с помощью дескриптора <param>. В Web можно найти сотни го­товых аплетов, которые можно свободно выгружать и включать в состав своих Web-страниц. Обычно настраивать аплеты можно с помощью дескриптора <param>, как это делалось в предыдущих практикумах. Тем не менее, некоторые аплеты не принимают параметры настроек. Чтобы персонализировать те аплеты, которые не позволяют передавать значения настроек посредством дескриптора <param>, вам придется редактировать операторы Java-программы, которые были написаны программистом, создавшим аплет. Следовательно, настраивать такие аплеты можно только в том случае, если программист дает вам возможность заг­рузить файл с исходным кодом. Прежде чем начать корректировать Java-аплеты пу­тем редактирования операторов программы, вы должны понимать действия, вы­полняемые программистом при создании аплета.

Разрабатывая программу, программист с помощью языка программирования, например, Java, Visual Basic или C+ + , задает инструкции, которые должны быть" выполнены компьютером. Инструкции (то есть операторы программы) програм­мист помещает в файл, который носит название исходного файла программы (в данном случае - аплета). Точно так же, как вы можете с помощью ряда тексто­вых редакторов создавать HTML-документы, программисты могут пользоваться различными редакторами для создания исходного файла аплета. Подобно тому, как для HTML-страниц используются расширения файлов . htm или .html, для исходных файлов Java используется расширение .java.

Ранее в этой главе рассматривался аплет NervousText, который "дергает" на экране буквы в текстовом сообщении, так, чтобы буквы казались "нервными". Приведенные ниже операторы представляют собой исходный код упрощенной версии аплета, которую можно назвать Nervous.java. (Язык программирования Java чувствителен к регистру, это значит, что он отличает заглавный и строчный варианты одной и той же буквы. Следовательно, создавая исходный файл Nervous.java, не забудьте использовать в имени файла заглавную "N".)

import java. awt. event.*;

import java. awt. Graphics;

import java. awt. Font;

import java. applet. Applet;

public class Nervous extends Applet implements Runnable

{

String banner;

char bannerChars[];

Thread runner = null;

public void init()

{

banner = "I'm nervous!";

intbannerLength = banner. length();

bannerChars = new char[bannerLength];

banner. getChars(0, banner. length(), bannerChars, 0);

resize(15*(bannerLength + 1), 50);

setFont(new Font("TimesRoman", Font. BOLD, 36));

}

public void start()

{

runner = new Thread(this);

runner. start();

}

public synchronized void stop()

{

runner = null ;

}

public void run()

{

Thread me = Thread. currentThread();

while (runner == me)

{

try

{

Thread. sleep(100);

}

catch (InterruptedExceptione) {}

repaint();

}

}

public void paint(Graphics g)

{

for(int i=0, length = banner. length(); i < length; i++)

{

int x = (int) (10*Math. random() + 15 * i) ;

int у = (int) (10*Math. random() + 36);

g. drawChars(bannerChars, i, 1, x, y ) ;

}

}

Вовсе не обязательно понимать конкретное предназначение операторов в исходном файле Java; цель этого практикума — выгрузить и "ввести в эксплуата­цию" комплект инструментальных средств разработчика программного обеспече­ния на Java (Java Software Development KitSDK) из посвященного Java Web-сайта Sun Microsystems. В результате вы сможете скомпилировать свой первый Java-аплет.

Как вы уже знаете, Java-аплет состоит из обобщенного байт-кода (то есть файла, заполненного единицами и нулями), который выполняется браузером. Чтобы преобразовать операторы, которые находятся в исходном Java-файле, в единицы и нули, из которых состоит байт-код, выполняемый Web-браузером, программисты применяют специальную программу, называемую компилятором. Как доказано на рис. 9.20, компилятор преобразует операторы (называемые ко­дом), находящиеся в исходном Java-файле, в байт-код. Исходный Java-файл обыч­но имеет расширение . java, а компилятор сохраняет сгенерированный им байт-код в файле с расширением .class. (Как вы видели в предыдущих практикумах, для внедрения аплета в Web-страницу значение атрибута code внутри дескриптора <applet> устанавливается равным имени файла, содержащего байт-код аплета.)

Рисунок 9.20. Компилятор Java преобразует операторы исходного кода в байт-код

Для большинства языков программирования, например, Visual Basic или C++, программистам приходится приобретать компилятор, цена которого может дос­тигать нескольких сотен долларов. Компания Sun Microsystems, однако, предла­гает комплект инструментальных средств разработчика программного обеспече­ния на Java (SDK), содержащий компилятор Java (наряду с другими инструментами программированиями и программами-примерами), совершенно бесплатно. Выгрузить Java SDK можно из сайта http://www. java. .

Комплект Java SDK достаточно велик (более 30 Мб). Для того чтобы выгру­зить SDK, вам понадобится достаточный объем свободного пространства на дис­ке, равно как и определенное терпение до завершения выгрузки. Во время выг­рузки SDK вы получаете исполняемый файл, который потребуется запустить, чтобы установить Java на ваш компьютер. (Для создания Java-аплетов необходи­мо, чтобы на вашем компьютере был установлен компилятор Java; для выполне­ния Java-аплетов необходим только браузер.) После завершения загрузки вам нужно будет запустить программу установки Java SDK. Программа установки даст возможность выбрать папку, в которую должны быть помещены файлы SDK. Для простоты укажите папку Java в корневом каталоге своего диска (программа установки самостоятельно создаст в корневом каталоге эту папку, в которую и бу­дет помещать файлы). После завершения установки Java SDK вам потребуется выполнить несколько простых служебных действий, прежде чем можно будет ис­пользовать компилятор для компиляции своего первого аплета.

Компилятор Java представляет собой программу режима командной строки, а это значит, что вы запускаете компилятор не в окне как таковом, а из командной стро­ки. Чтобы помочь вам в приведении в работоспособное состояние компилятора под управлением различных операционных систем (или их версий), Web-сайт компании Sun, посвященный Java, предоставляет набор пошаговых инструкций. Инструкции по установке компилятора в среде Windows (Windows 9x, 2000 и ХР) находятся по адресу http://www. Java. /j2se/1.3/install-windows. html#Environment.

Для лучшего понимания процесса установки компилятора в оставшейся части этого практикума будет рассмотрены действия, которые необходимо выполнять для установки компилятора в среде Windows 9x.

Сначала в среде Windows необходимо запустить компилятор Java из команд­ной строки в окне MS-DOS. Для того чтобы открыть окно MS-DOS, выберите в меню Start | Run (Пуск | Выполнить...). На экран будет выведено диалоговое окно Run (Запуск программы). В диалоговом окне Run наберите Command и нажмите ENTER.

Имя каталога, содержащего инструментальные средства программирования на Java, зависит от установленной вами версии SDK. Прежде чем вы сможете ис­пользовать компилятор для создания Java-аплетов, вам нужно будет добавить имя каталога, содержащего инструментальные средства, в командный путь, опре­деленный строкой PATH в файле AUTOEXEC.BAT вашей системы. Чтобы указать корневой каталог (содержащий файл AUTOEXEC.BAT), наберите в командной стро­ке CD\ и нажмите ENTER:

С:\Windows>CD \<Enter>

С:\>

Имя папки, содержащей инструменты программирования на Java, обычно бу­дет начинаться с буквы J. Чтобы найти эту папку, наберите приведенную ниже команду DIR и нажмите ENTER; Windows отобразит список каталогов, подобный приведенному ниже:

C:\>DIR \J* /A:D<Enter>

Том в устройстве С не имеет метки

Серийный номер тома: 063E-14D9

Содержимое папки С: \

DIASOF-1 <ПАПКА> 1:08р Diasoft Publishing House

BOOKS <ПАПКА> 8:10a Books for DS Publishing House

J2SDK1-1 0-B <ПАПКА> 2:15p j2sdkl. 4.0-beta3

0 файлов 0 байт

0 папок 955,04 МБ свободно

В данном случае инструменты программирования на Java находятся в папке J2SDKI~I.O-B. Запишите название каталога, в котором хранятся файлы Java на вашем компьютере (если имя содержит пробел, замените пробел точкой). С по­мощью Блокнота отредактируйте файл AUTOEXEC.BAT, расположенный в кор­невом каталоге:

С:\>notepad \autoexec. bat<Enter>

В файле AUTOEXEC. BAT найдите строку PATH. В конце строки поставьте точку с запятой, буквенное обозначение текущего диска, двоеточие, косую черту, имя каталога Java и строку \BIN, как показано ниже:

PATH С:\WINDOWS\SYSTEM;C:\J2SK-1.0-B\BIN

Сохраните содержимое файла и выйдите из редактора. С помощью команды EXIT закройте окно MS-DOS и перезагрузите компьютер.

После перезагрузки компьютера вы готовы к компиляции Java-аплетов. В дан­ном случае будет выгружены (или набраны) Операторы программы Nervous.Java. Выгрузить этот файл вы можете из сайта издателя русскоязычной редакции этой книги, который находится по адресу http://www. diasoft. . Если же вы будете набирать операторы, внимательно следите за использованием букв верхне­го и нижнего регистра. Поместите файл в папку на диске, которую в данном случае можете назвать просто MyJava. Затем снова откройте окно MS-DOS. С помощью команды CD выберите каталог, в котором был сохранен файл Nervous, java. Например, если вы поместили файл в каталог MyJava, команда со будет выглядеть следующим образом:

\Windows>CHDIR \MyJava<Enter> С:\МуJava>

Чтобы скомпилировать исходный файл Nervous.Java, выдайте следующую команду javac, находясь в папке с исходным Java-файлом:

С : \MyJava> j avac Nervous. j ava<Enter>

Успешно скомпилировав программу, компилятор создаст файл Nervous.class в той же папке, где находится исходный файл аплета. Если вы набирали файл и компилятор выдал сообщения об ошибках, отредактируйте файл, внимательно сравнивая операторы в нем с текстом, приведенным в данной книге. Набранные вами буквы и символы должны в точности соответствовать тем, которые приведе­ны в книге. Если же при выполнении программы javac система выдает сообще­ние "Bad command or file name" ("Имя команды или файла указано неправиль­но"), строка PATH в вашем файле AUTOEXEC.BAT не указывает корректно на файл, содержащий инструментальные средства программирования на Java.

Скомпилировав аплет, создайте следующий HTML-файл, Nerves.html, для внедрения вновь созданного аплета в Web-страницу:

<html>

<head>

<title> HepBHbiPi текст </title>

</head>

<body>

<hr>

<applet code = "Nervous. class" width = 375 height = 50>

<param name = "text" value = "Java Development Kit 1.2">

</applet>

<hr>

</body>

</html>

Откройте в браузере файл Nerves.html. Web-браузер загрузит Web-страницу с внедренным аплетом, отображающим "дергающийся" текст — "I'm nervous!".

Затем закройте Web-браузер и откройте в текстовом редакторе файл Nervous,java. Найдите следующую строку:

banner = "I'm nervous!";

Замените текст в кавычках на что-нибудь другое, например:

banner = "Konrad King";

Сохраните содержимое файла и выйдите из редактора. Затем выдайте следую­щую команду javac в командной строке MS-DOS, чтобы заново скомпилировать свой аплет:

С:\МуJava>javac Nervous. java< Enter>

Каждый раз, когда вы вносите изменения в код из Java-файла, вы должны компилировать код с помощью компилятора Java (jeCvac), дабы изменения всту­пили в силу. В данном случае компилятор Java заменит содержимое Nervous, class байт-кодом модифицированного исходного Java-файла (Nervous.java), так что в следующий раз, когда вы загрузите Web-страницу — Nerves.html — в Web-браузере, внедренный аплет (Nervous.class) будет отобра­жать новую строку. Это все по компиляции, изменению и повторной компиля­ции Java-аплетов.

В зависимости от числа символов в тексте, который должен будет ото­бразить аплет, вам может понадобиться увеличить ширину аплета, изменив атрибут width внутри дескриптора <applet>, с помощью которого аплет внедряется на Web-страницу.

Добавление в Web-страницу Internet-чата

с помощью элемента управления ActiveX Microsoft Chat

В предыдущих практикумах этой главы вы добавляли различные возможности на свой Web-сайт с помощью Java-аплетов. В следующих же практикумах описы­вается, как использовать на Web-страницах объекты ActiveX. Как было сказано выше в этой главе, объект ActiveX отличается от Java-аплета тем, что объект (то есть элемент управления) ActiveX необходимо предварительно выгрузить и уста­новить на своем компьютере, в отличие от безопасной загрузки и выполнения аплетов внутри браузера. Более того, если вы пользуетесь Netscape Navigator, вам придется выгрузить и установить подключаемый модуль, дающий браузеру под­держку того элемента управления ActiveX, который планируется выполнить.

До появления функции Instant Messaging компании AOL (а теперь и Microsoft) и Internet-телефонии, предлагаемой компаниями наподобие Net2Phone, люди общались друг с другом через Internet с помощью так называе­мого чата Internet Relay Chat (IRC). Даже сегодня, при наличии электронной по­чты, пейджеров, сотовых телефонов и невысоких тарифов на междугородные и международные переговоры, IRC остается весьма и весьма популярным. Microsoft Chat дает вам возможность поместить на свои Web-страницы простейший эле­мент управления — чат, показанный на рис. 9.21.

Подключившись к серверу IRC и либо присоединившись к существующей чат-комнате, либо открыв новую, посетитель может набирать сообщения в ниж­ней левой панели. Элемент управления затем отображает сообщения, набранные пользователем, вместе с сообщениями, набранными другими людьми в той же чат-комнате, в реальном времени внутри верхней левой панели элемента управления. (В правой панели элемента управления отображается перечень имен людей в комнате.)

Рис. 9.21. Элемент управления ActiveX IRC Microsoft Chat

ПРАКТИКУМ

Многие компании обнаружили, что чат-сеансы — это удобный способ организа­ции прямого общения между клиентами и службой поддержки. Чат-комнаты осо­бенно удобны в случае новых выпусков программных продуктов, когда у несколь­ких клиентов возникают одинаковые вопросы по установке и новым функциям. Компании могут сэкономить время и деньги, ответив на такие вопросы один раз в форуме, чтобы ответы могли прочесть многие клиенты, вместо того, чтобы много­кратно отвечать на одни и те же вопросы по телефону клиентам, звонящим на бес­платный номер службы поддержки компании. Чтобы использовать на Web-страни­це элемент управления Microsoft Chat, вставьте приведенные ниже строки в HTML-код Web-страницы, там, где должны будут находиться панели ввода и выво­да чата:

<object id = "Chat"

classid = "clsid:D6526FE0-E651-HCF-99CB-00C04FD644 97"

align = "baseline" border = "0" width = "600" height = "200"

standby = "Загрузка элемента управления Microsoft Chat"

type = "application/x-oleobject">

<param name = "MaxMessageLength" value = "2000">

<param name = "MaxHistoryLength" value = "32767">

<param name = "UIOption" value = "4095">

<param name = "BackColor" value= "255" >

<!-- Ниже используется подключаемый модуль ActiveX, предоставленный , для вставки элемента управления ActiveX "чат" на Web-страницу при отображении в Netscape Navigator версии 6.1 и. выше. —->

<embed type = "application/x-eskeractivex"

id = "Chat"

clsid = "D652 6FE0-E651-llCF-99CB-0 0C04FD6449 7"

width = "600" height = "200"

MaxMessageLength = "2000"

MaxHistoryLength = "32767"

UIOption = "4095"

BackColor="255">

</embed>

</object>

Обратите внимание, что в коде данного примера присутствует дескриптор <embed>, загружающий элемент управления Microsoft Chat на Web-страницу, ког­да та отображается в Netscape Navigator. Помните, что вы должны установить подключаемый модуль, позволяющий Netscape Navigator выполнить элемент уп­равления ActiveX, прежде чем браузер Netscape в действительности сможет загру­зить и отобразить на Web-странице объект ActiveX. В данном примере дескрип­тор <embed> требует установить подключаемый модуль ActiveX np6esk32.dll, выгрузить который можно по адресу http://www. . Значения, присваи­ваемые атрибуту type дескриптора <embed>, будут различаться в зависимости н подключаемого модуля ActiveX, используемого для вашей версии Netscape Navigator.

Настроить возможности чата можно при помощи следующих параметров:

standby

Текст, отображаемый Web-браузером во время загрузки элемента управления Microsoft Chat.

MaxMessageLength

Максимальное число символов, которое посетитель может набрать в области исходящего сообщения (то есть в нижней левой панели), прежде чем щелкнуть на одной из двух кнопок "Send" ("Отпра­вить") справа от панели.

MaxHistoryLength

Число символов, которому элемент управления позволит аккумулироваться в области списка (истории) сообщений (то есть в верхней левой панели), прежде чем удалять самый старый текст.

BackColor

Число от 0 до 255 включительно, задающее цвет границы меж­ду панелями элемента управления.

Помимо самого элемента управления Microsoft Chat, вам необходимо предос­тавить посетителю форму для ввода имени сервера IRC, чат-комнаты, темы чата и прозвища ("ника"), под которым посетитель будет известен в комнате. Кроме того, посетителю понадобятся кнопки, показанные в нижней части формы на рис. 9.22, чтобы войти в существующую или создать новую комнату, управлять взаимодействием с другими участниками и, по желанию, очищать область спис­ка сообщений.

Выгрузите из сайта издателя русскоязычной редакции этой книги страницу MSChatPage.htm, которая послужит примером полнофункциональной Web-стра­ницы с внедренным элементом управления ActiveX Microsoft Chat. He стесняй­тесь менять расположение полей и текстовых подписей формы. VBScript-функции, вызываемые при щелчках посетителя на кнопках формы, находятся в нижней части HTML-кода Web-страницы. (Каждая VBScript-функция обращается к методу (то есть функции) элемента управления ActiveX Microsoft Chat для выполнения действия, со­ответствующего надписи кнопки, с помощью которой была вызвана функция.)

Рис. 9.22. Форма, позволяющая посетителю вводить информацию для входа

в чат и отправлять команды клиенту Microsoft Chat

Использование только объектов ActiveX в Internet Explorer

Одна из сложностей использования объектов ActiveX на Web-страницах зак­лючается в поддержке пользователей, работающих в Netscape. Как вы уже знаете, прежде чем Netscape сможет использовать объект ActiveX, должен быть выгружен подключаемый модуль, поддерживающий объект. К сожалению, не все подклю­чаемые модули поддерживают все объекты ActiveX. Например, элемент управле­ния Microsoft Marquee (рамка) позволяет отображать содержимое Web-страницы по вертикали, по горизонтали или по диагонали внутри прямоугольной области на Web-странице, как показано на рис. 9.23. Элемент управления Microsoft Marquee отображает текст, фон и графические изображения, как посетитель ви­дел бы их, посетив саму Web-страницу. Таким образом, элемент управления Marquee дает возможность прокручивать текст, равно как и графические изобра­жения, в виде меняющегося баннера. К сожалению, многие из подключаемых модулей для Netscape не поддерживают элемент управления Marquee.

Рис. 9.23. Элемент управления Marquee, прокручивающий одну Web-страницу

в прямоугольной области внутри другой страницы

ПРАКТИКУМ

Чтобы использовать на Web-странице элемент управления Microsoft Marquee, обычно понадобится сначала создать HTML-файл с содержимым, которое вы будете прокручивать в рамке. Затем в HTML-файл страницы, внутри которой необ­ходимо поместить рамку, помещается приведенный ниже HTML-код, причем в то место страницы, где должно находиться прокручиваемое содержимое (замени­те URL-адрес в параметре szURL на URL-адрес HTML-страницы, содержимое ко­торой требуется прокручивать):

<object id = "Markee" width = "64 0" height = "260"

classid = "clsid:la4dallcf-be62-0080c72edd2d">

<param name = "szURL" value = "http://www. /HWDTT

/Booklnformation. htm">

<param name = "ScrollDelay" value = "300">

<param name = "LoopsX" value = "-l">

<param name = "LoopsY" value = "-l">

<param name = "ScrollPixelsX" value = "0">

<param name = "ScrollPixelsY" value = "-10">

<param name = "Whitespace" value = "0">

<param name = "Zoom" value = "100">

</object>

Для настройки элемента управления Marquee предназначены следующие пара­метры:

SZURL

URL-адрес исходной Web-страницы, которая должна отображаться в рамке.

ScrollDelay

Время (в миллисекундах) между обновлениями.

Loopsx

Сколько раз программа должна прокрутить содержимое по верти­кали. Значение «-1» обозначает "прокручивать постоянно".

LoopsY

Сколько раз программа должна прокрутить содержимое по гори­зонтали. Значение «-1» обозначает "прокручивать постоянно".

scroiiPixeisx

Число пикселей, на которое программа должна сдвигать содержимое рамки по горизонтали в каждом цикле обновления. При отрицательном значении содержимое будет прокручиваться справа налево, при положительном — слева направо.

scroiiPixeisY

Число пикселей, на которое программа должна сдвигать содержимое рамки по вертикали в каждом цикле обновления. При отрица­тельном значении содержимое будет прокручиваться по направлению вверх, при положительном — вниз.

whitespace

Размер интервала (в пикселях), который программа должна оставлять между последовательными копиями исходной Web-страницы.

zoom

Увеличение или уменьшение (в процентах) размера исходной Web-страницы внутри рамки.

ПРАКТИКУМ

Одно из решений проблемы, связанной с использованием объектов ActiveX, — внедрять объекты только для тех пользователей, которые работают в Internet Explorer. В вышеприведенном дескрипторе <object>, например, использование объекта на странице для браузеров Netscape предотвращается тем, что дескрип­тор <embed>, которого требует Netscape, опущен. Вместо того чтобы попросту иг­норировать пользователей Netscape, можно сделать так, чтобы ваша Web-страни­ца выполняла одну операцию (такую как внедрение объекта ActiveX) для пользователей Internet Explorer, и другую (такую как загрузка аналогичного Java-аплета) для пользователей Netscape.

Например, в приведенной ниже активной серверной странице при помощи значения HTTP_USER_AGENT определяется информация о браузере пользователя. Если строка, возвращенная функцией, содержит буквы MSIE, сценарий знает, что посетитель пользуется Microsoft Internet Explorer, и помещает в HTML-файл опе­раторы, внедряющие объект ActiveX. Если используется другой браузер (не Internet Explorer), сценарий объект не внедряет:

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4