
- •1. Основні поняття
- •1.1. Сім варіацій на тему "Hello, world! "
- •1.1.1. Варіація перша: сама проста
- •1.1.2. Варіація друга: із секретним вихідним текстом
- •1.1.3. Варіація третя: із переменной і функціями
- •1.1.4. Варіація четверта: створення сторінки "на літу"
- •1.1.5. Варіація п'ята: із діалоговою панеллю
- •1.1.6. Варіація шоста: опрацювання події
- •1.1.7. Варіація сьома: із визначенням типу браузера
- •1.2. Перемінні в JavaScript
- •1.2.1. Оголошення перемінних
- •1.2.2. Присвоєння значення перемінним
- •1.2.3. Типи даних
- •1.2.4. Перетворення типів даних
- •1.3. Оператори мови JavaScript
- •1.3.1. Унарные оператори
- •1.3.2. Бинарные оператори
- •1.3.3. Оператори для роботи з окремими бітами
- •1.3.4. Оператори зсуву
- •1.3.5. Оператори відношення
- •1.3.6. Логічні оператори
- •1.3.7. Оператор присвоювання
- •1.3.8. Умовні оператори
- •1.3.9. Оператори циклу
- •1.3.10. Інші оператори
- •1.3.11. Старшинство операторів JavaScript
- •1.3.12. Функції в мові сценаріїв JavaScript
- •1.4. Приклади використання операторів циклу
- •2. Класи і об'єкти
- •2.1. Три типи об'єктів «JavaScript
- •2.1.1. Умонтовані об'єкти
- •2.1.2. Об'єкти браузера
- •2.1.3. Об'єкти на базі класів, утворюваних програмістом
- •2.2. Масиви в JavaScript
- •2.3.1. Властивості об'єкта window
- •2.3.2. Методи об'єкта window
- •2.4. Сценарії, що працюють з об'єктами window
- •2.4.1. Як закрити вікно браузера
- •2.4.2. Открываем нове окно
- •2.4.3. Текст , що біжить , у рядку стани браузера
- •2.4.4. Обмеження часу реакції користувача
- •2.4.5. Завантаження документа html у вікно браузера
- •2.5.1. Властивості об'єкта document
- •2.5.2. Методи об'єкта document
- •2.5.3. Колірне оформлення документа
- •2.5.4. Посилання і мітки в документі
- •2.6. Умонтований клас Math
- •2.6.1. Властивості
- •2.6.2. Методи
- •2.7. Умонтований клас Date
- •2.7.1. Конструктори класу Date
- •2.8. Умонтовані функції
- •2.9. Плавна зміна цвіту фона документа html
- •3. Робота з формами
- •3.1. Ієрархія об'єктів у формах
- •3.2. Форма і її властивості
- •3.2.2. Властивості об'єкта form
- •3.3. Об'єкти, що входять до складу форм
- •3.3.1. Кнопка button
- •3.3.2. Перемикач checkbox
- •3.3.3. Перемикач radio
- •3.3.4. Приклад форми з перемикачами
- •3.3.5. Список select
- •3.3.6. Приклади сценаріїв, що працюють із списками
- •3.3.7. Однострочное поле text
- •3.3.8. Перевірка анкети
- •3.3.9. Многострочное поле textarea
- •3.3.10. Приклад сценарію, що заповнює поле textarea
- •3.3.11. Однострочное поле password
- •3.3.12. Запровадження ідентифікатора і пароля
- •3.4. Перевірка заповнення форми
- •3.5. Шестнадцатеричный калькулятор
- •3.3.6. Електронні часи
- •4. Фреймы
- •4.1. Файл опису фреймов
- •4.2. Взаємодія між фреймами
- •4.2.1. Десятично-шестнадцатеричный перетворювач
- •4.2.2. Відображення декількох документів html
- •5. Растровые зображення
- •5.1. Растровое зображення як об'єкт
- •5.2. Динамічна заміна растровых зображень
- •5.2.1. Зміна зовнішнього вигляду графічних посилань
- •5.2.2. Створення анімаційних зображень
- •5.2.3. Чекання завантаження всіх зображень
- •6. Взаємодія з аплетами java
- •6.1. Вбудовування аплета Java у документ html
- •6.2. Виклик методів аплета Java із сценарію JavaScript
- •6.3. Доступ до полів аплета Java із сценарію JavaScript
- •6.4. Динамічне завантаження аплетов Java
- •7. Застосування cookie
- •7.1. Виконання основних операцій із cookie
- •7.1.1. Створення cookie
- •7.1.2. Одержання значення cookie
- •7.1.3. Зміна значення параметра cookie
- •7.1.4. Видалення cookie
- •7.1.5. Обмеження на використання cookie
- •7.2. Декілька прикладів використання cookie
- •7.2.1. Фіксація повторних провідин сторінки
- •7.2.2. Записна книжка Cookies Notepad
- •7.2.3. Настроювання параметрів документа html
- •7.2.5. Одержання cookie розширенням серверу Web
- •7.2.6. Лічильник провідин на базі cookie і програми cgi
- •7.3. Настроювання браузера для роботи з cookie
6.1. Вбудовування аплета Java у документ html
Для того щоб вбудувати аплет у документ HTML, необхідно скористатися оператором <APPLET>, наприклад:
<APPLET
CODE=MyApplet. class NAME="MyApplet" ID=MyApplet WIDTH=320 HEIGHT=240>
</APPLET>
Припустимі параметри оператора <APPLET>:
Парамemp Опис
ALIGN Вирівнювання вікна аплета щодо навколишнього його тексту. Можливі такі значення:
LEFT - вирівнювання вліво щодо навколишнього тексту; CENTER - центрування; RIGHT - вирівнювання вправо щодо навколишнього тексту; ТОР - вирівнювання по верхній межі; MIDDLE - центрування по вертикалі; BOTTOM - вирівнювання по нижній межі.
ALT С поміччю цього параметра можна задати текст, що буде відображатися у вікні аплета в тому випадку, якщо браузер не може працювати з аплетами Java
CODE Ім'я двоичного файла, що містить код аплета. По умовчанню шлях до цього файла вказується щодо каталога з файлом HTML, куди умонтований аплет. Таке поводження може бути змінено параметром CODEBASE
CODEBASE Базова адреса URL аплета, тобто шлях до каталога, що містить аплет.
HEIGHT Початкова ширина вікна аплета в пикселях.
WIDTH Початкова висота вікна аплета в пикселях.
HSPACE Зазор зліва і справа від вікна аплета.
VSPACE Зазор поверх і знизу від вікна аплета.
NAME Ім'я аплета. Воно може бути використано іншими аплетами, розташованими в тому самому документі HTML, а також сценаріями JavaScript.
TITLE Рядок заголовка/
Додатково між операторами <APPLET> і </APPLET> можна задати параметри аплета. Для цього використовується оператор <PARAM>.
Користуючи операторами <PARAM>, розташованими в документі HTML відразу після оператора <APPLET>, можна передати аплету довільна кількість параметрів, наприклад у виді текстових рядків:
<APPLET CODE=MyApplet.class NAME="MyApplet" ID=MyApplet WIDTH=320 HEIGHT=240>
<PARAM NAME=ParamName1 VALUE="Param Value 1">
<PARAM NAME=ParamName2 VALUE="Param Value 2">
<PARAM NAME=ParamName3 VALUE="Param Value 3">
<PARAM NAME=ParamName4 VALUE="Param Value 4">
</APPLET>
Тут через параметр NAME оператора <PARAM> передається ім'я параметра аплета, а через параметр VALUE - значення відповідного параметра.
6.2. Виклик методів аплета Java із сценарію JavaScript
Сценарій JavaScript може одержати доступ до полів і методів аплетов, розташованих у документі HTML, адресуючись до аплетам як до елементів масиву document.applets.
Наприклад, для доступу до першому аплету можна використовувати стокові document.applets[0]. Проте зручніше вказувати ім'я аплета, задане в параметрі NAME оператора <APPLET>, наприклад document. MyApplеt.
Як приклад можна показати, як викликати зі сценарію JavaScript методи аплета Rectangles, описаного в згаданому вище 32-м томі "Бібліотеки системного програміста". Цей аплет малює і своєму вікні прямокутники випадкового розміру, зафарбовані випадковим цвітом.
Документ HTML створюється розміщенням у ньому аплета Rectangles і форми з кнопками Start Animation і Stop Animation.
Відразу після завантаження документа у вікні аплета запускается процес анимации. Якщо натиснути кнопку Stop Animation, малювання нових прямокутників буде припинено. За допомогою кнопки Start Animation можна відновити процес малювання.
Зауважимо, що, якщо помістити курсор миші в область вікна аплета, анимация буде зупинена, а коли курсор миші покине межі вікна аплета - знову запущена. Проте таке поводження визначається самим аплетом і не має відношення до сценарію JavaScnpt.
Вихідний текст документа HTML, що містить аплет і форму з кнопками, поданий у листинге 6.1.
Листинг 6.1. Файл chapter6/Rectangles/Rectangles. html
<HTML>
<HEAD>
<TITLE>Rectangles</TITLE>
</HEAD>
<BODY>
<HR>
<APPLET CODE=Rectangles.class NAME="Rectangles" ID=Rectangles WIDTH=320 HEIGHT=240>
</APPLET>
<HR>
<FORM>
<INPUT TYPE="buttor." VALUE="Start Animation" onClick="document.Rectangles.start()">
<INPUT TYPE="button" VALUE="Stop Animation" onClick="document.Rectangles.stop()">
</FORM>
<A HREF="Rectangles.java">The source.</A>
</BODY>
</HTML>
Тут параметр NAME оператора <APPLET> задає ім'я аплета як rectangles.
Коли користувач натискає на кнопку Start Animation, керування одержує оброблювач події onClick, визначений у такий спосіб:
onClick="document. Rectangles. start()"
Цей оброблювач викликає метод start, визначений в аплете Rectangles. Цей метод запускає анимацию у вікні аплета, якщо вона була зупинена.
Аналогічно оброблювач події onClick кнопки Stop Animation викликає метод stop, також визначений в аплете Rectangles і призначений для припинення анимации:
onClick="document. Rectangles. stop()"
Вихідний текст аплета Rectangles відтворений у листинге 6.2. Докладний опис цього аплета можна знайти в поділі "Додаток Rectangles" першого розділу 32-го тому "Бібліотеки системного програміста".
Листинг 6.2. Файл chapter6/Rectangles/Rectangles. java
// Малювання прямокутників в окремій задачі
//
// (С) Фролов А. У, 1997, 1998
//
//.E-mail: frolov@glas.apc.org
// WWW: http://www.glasnet.ru/~frolov
// або
// http://www.dials-ccas.ru/frolov
import java.applet.*;
import java.awt.*;
import java.util.*;
public class Rectangles extends Applet implements Runnable
{
// Посилання на задачу малювання прямокутників
Thread m_Rectangles = null;
// --------------------------------------------------------------
// getAppletInfo
// Метод, що повертає рядок інформації про аплете
//------------------------------------------
public String getAppletInfo()
{
return "Name: Rectangles\r\n" +
"Author: Alexandr Frolov\r\n" +
"E-mail: frolov@glas.apc.org" +
"WWW: http://www.glasnet.ru/~frolov" +
"Created with Microsoft Visual J++ Version 1.0";
}
//------------------------------------------
// paint
// Метод paint, що виконує малювання у вікні аплета
//------------------------------------------
public void paint(Graphics g)
{
// Визначаємо поточні розміри вікна аплета
Dimension dimAppWndDimension = size();
// Вибираємо в контекст відображення жовтий цвіт
g.setColor(Color.yellow);
// Зафарбовуємо внутрішню область вікна аплета
g.fillRect(0, 0,
dimAppWndDimension.width - 1,
dimAppWndDimension.height - 1);
// Вибираємо з контекст відображення чорний цвіт
g.setColor(Color.black);
// Малюємо рамку навколо вікна аплета
g.drawRect(0, 0,
dimAppWndDimension.width - 1,
dimAppWndDimension.height - 1);
}
//------------------------------------------------------
// start
// Метод визивається при першому відображенні вікна аплета
//------------------------------------------------------
public void start()
{
if(m_Rectangles == null)
{
m_Rectanales = new Thread(this);
m_Rectangles.start();
}
}
//------------------------------------------------------
//stop
// Метод визивається, коли вікно аплета зникає з екрана
//------------------------------------------------------
public void stop()
{
if(m_Rectangles != null)
{
m_Rectangles.stop();
m_Rectangles = null;
}
}
//------------------------------------------------------
// run
// Метод, що працює в рамках окремої задачі
// Він малює у вікні аплета прямокутники випадкового
// цвіти, розміру і розташування
//------------------------------------------------------
public void run()
{
// Одержуємо контекст відображення для вікна аплета
Graphics g = getGraphics();
// Визначаємо поточні розміри вікна аплета
Dimension dimAppWndDimension = size();
while (true)
{
int x, у, width, height;
int rColor, gColor, bColor;
// Вибираємо випадковою уявою розміри
//і розташування що малюється прямокутника х = (int)(dimAppWndDimension.width * Math. random());
у = (int)(dimAppWndDimension.height * Math.random());
width = (int)(dimAppWndDimension. width * Math. random()) / 2;
height = (int)(dimAppWndDimension. height * Math. random () / 2;
// Вибираємо випадковий цвіт для малювання
// прямокутника
rColor = (int) (255 * Math.random());
gColor = (int) (255 * Math.random());
bColor = (int) (255 * Math.random());
// Встановлюємо обраний цвіт у контексті відображення
g.setColor(new Color(rColor, gColor, bColor));
// Малюємо прямокутник
g.fillRect(x, у, width, height);
// Виконуємо затримку на 50 мс
try
{
Thread.sleep(50);
}
catch(InterruptedException e)
{
stop();
}
}
}
//----------------------------------------------
// mouseEnter
// Метод визивається, коли курсор миші надається над
// вікном аплета
//-----------------------------------------------
public boolean mouseEnter(Event evt, int x, int y)
{
if(m_Rectangles != null)
{
// Коли курсор миші надається над поверхнею
// вікна аплета, тимчасово припиняємо
// задачу малювання прямокутників
m_Rectangles.suspend();
}
return true;
}
//-----------------------------------------------
// mouseExit
// Метод визивається, коли курсор миші покидає
// вікно аплета
//-----------------------------------------------
public boolean mouseExit(Event evt, int x, int y)
{
if (m_Rectangles != null)
// Коли курсор миші покидає вікно аплета,
// відновляємо роботу задачі малювання прямокутників
m_Rectangles.resume();
}
return true;
}
}