- •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.3. Доступ до полів аплета Java із сценарію JavaScript
У попередньому прикладі сценарій JavaScript викликав методи, визначені в аплете Java. У такому прикладі сценарій буде обертатися до поля, визначеному в головному класі аплета.
Сценарію JavaScript доступні тільки поля і методи аплета, визначені як public.
На мал. 6.2 показаний зовнішній вигляд документа HTML, у якому розташовані один аплет і форма з одним многострочным текстовим полемо й одною кнопкою.
У вікні аплета, розташованому у верхній частині документа, знаходиться поле редагування тексту і кнопка з написом "Одержати рядок". Якщо набрати в поле редагування будь-який текстовий рядок і натиснути цю кнопку, то введений рядок буде відображена в нижній частині аплета після символу >. Такий аплет був описаний у 30-м томі "Бібліотеки системного програміста" у поділі "Додаток TxtField" гл. 5.
Якщо натиснути кнопку "Get applet info and text", те сценарій JavaScript витягне з аплета введений текстовий рядок (вона зберігається в поле з ім'ям str), а також одержить опис аплета, викликавши метод getAppletInfo, визначений в аплете.
Введений рядок і інформація про аплете будуть потім відображені сценарієм у многострочном полі редагування.
Таким чином, сценарій обертається до поля і методу, визначеним в аплете.
Вихідний текст документа HTML - у листинге 6.3.
Листинг 6.3. Файл chapter6/TxtField/TxtField. htinl
<HTML>
<НЕАD>
<TITLE>Get text</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
function getTextFromAoplet()
{
var szMsg="null";
GetForm.Comment.value = document.applets[0].str +
"\n" + ------------------------\n" +
document.applets[0].getAppletInfo();
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<HR>
<APPLET
CODE=TxtField.class
NAME="TxtField"
ID=TxtField
WIDTH=320
HEIGHT=140>
</APPLET>
<HR>
<FORM NAME="GetForm">
<P><TEXTAREA NAME="Comment"
ROWS="7" COLS="45">
</TEXTAREA>
<P>
<INPUT TYPE="button" VALUE="Get applet info and text" onClick="getTextFromApplet();">
</FORM>
<A HREF="TxtField.java">The source.</A>
</BODY>
</HTML>
Для кнопки, розташованої у формі з ім'ям GetForm, визначений оброблювач події onClick:
onСlick="getTextFromApplet();"
Цей оброблювач викликає функцію getTextFromApplet, що виконує взаємодію з аплетом.
Функція getTextFromApplet обертається до аплету як до найпершого елемента масиву document. applets[0]:
GetForm.Comment.value = document.applets[0].str +
"\n" + "----------------------------\n" +
document. applets[0]. getAppletInfo();
Тут записується у властивість value многострочного поля GetForm. Comment значення перемінної str, до якого доданий роздільник із символів - і рядок опису аплета, отримана від методу getAppletInfo.
Вихідний текст аплета приведений у листинге 6.4.
Листинг 6.4. Файл chapter6/TxtField/TxtField. java
// Однострочное текстове поле класу TextField
//
// (С) Фролов А.У, 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.*;
public class TxtField extends Applet
{
// Створюємо посилання на об'єкти типу TextField
TextField txt;
// Створюємо посилання на об'єкти типу Button
Button btnGetText;
// Рядок для збереження введених даних
public String str;
//--------------------------------------------------
// getAppletInfo
// метод, що повертає рядок інформації про аплете
// -------------------------------------------------
public String getAppletInfo()
{
return "Name: TxtField\r\n" +
"Author: Alexandr Frolov\r\n" +
"E-mail: frolov@glas.ape.org\r\r." +
"WWM: htrp: //www.glasnet.ru/~frolov\r\n" +
"Created with Microsoft Visual J++ Version 1.0";
}
//--------------------------------------------------
// init
// Метод, що одержує керування при ініціалізації аплета
//--------------------------------------------------
public void init()
{
// Створюємо що редагується однострочное текстове поле
txt = new TextField("Введіть рядок тексту", 35);
// Створюємо кнопку, за допомогою якої можна получить
// уміст текстового поля
btnGetText = new Button ("Одержати рядок");
// Добавляємо текстове поле у вікно аплете
add(txt);
// Добавляємо кнопку у вікно аплете
add(btnGetText);
// Одержуємо і зберігаємо поточний текст,
// встановлений у поле
str = txt.getText();
// Встановлюємо цвіт фона
setBackground(Color.yellow);
}
//---------------------------------------------------
// action
// Метод визивається, коли користувач выполняет
// дія над компонентами
//---------------------------------------------------
public boolean action(Event evt, Object obj)
{
// Посилання на кнопку, від якої пришло сообщение
Button btn;
// Перевіряємо, що подія викликана кнопкою, а не
// іншим компонентом
if(evt.target instanceof Button)
{
// Одержуємо посилання на кнопку, що викликала подія
// Перевіряємо посилання на кнопку
if(evt.target.equals (btn.GetText))
{
// Одержуємо і зберігаємо поточний текст,
// встановлений у поле
str = txt.getText();
// Перемальовуємо вікно аплета
repaint();
}
// Якщо подія виникнула від невідомої кнопки,
// ми його не опрацьовуємо
else
{
return false;
}
// Повертаємо поизнак того, що ми опрацювали подію
return true;
}
// Якщо подія викликана не кнопкою,
// ми його не опрацьовуємо
return false;
}
//----------------------------------------------
// paint
// Метод paint, що виконує малювання у вікні аплета
//----------------------- ----------------------
public void paint(Graphics g)
{
// Визначаємо поточні розміри вікна аплета
Dimension.dimAppWndDimension = size();
// Вибираємо в контекст відображення чорний цвіт
g. setColor(Color. black);
}
Цей текст відтворений із невеличкими змінами з 30-го тому "Бібліотеки системного програміста". Зміни полягають у тому, що додано до визначення поля str ключове слово public:
public String str;
Це необхідно для того, щоб поле str було доступно зі сценарію JavaScript.
