і при записі в звичайний файл. Якщо у вікна є поле статусу (зазвичай в ньому відображається рівень завантаження документа), то при незакритому потоці записи в документ в ньому буде "кидатися" прямокутник продовження запису, як це відбувається при завантаженні документа.
1.2.3 Події
Крім методів і властивостей об'єкти характеризуються подіями. Власне, суть програмування на JavaScript полягає в написанні обробників цих подій. Наприклад, з об'єктом типу button (контейнер INPUT типу button - "Кнопка") може відбуватися подія click , тобто користувач може натиснути на кнопку. Для цього атрибути контейнера INPUT розширені атрибутом обробки події click - onClick . Як значення цього атрибута вказується програма обробки події, яку повинен написати на JavaScript автор HTML-документа:
"window.alert ('Будь ласка, натисніть ще раз ');">
Обробники подій вказуються в тих контейнерах, з якими ці події пов'язані. Наприклад, контейнер BODY визначає властивості всього документа, тому обробник події завершення завантаження всього документа вказується в цьому контейнері як значення атрибуту onLoad.
Примітка. Строго кажучи, кожен браузер, будь то Internet Explorer, Netscape Navigator або Opera, має свою об'єктну модель. Об'єктні моделі різних браузерів (і навіть різні версії одного) відрізняються один від одного, але мають принципово однакову структуру. Тому немає сенсу зупинятися на кожній з них окремо. Ми будемо розглядати загальний підхід стосовно до всіх браузерам, іноді, звичайно, загострюючи увагу на відмінностях між ними.
1.3 Розміщення коду на HTML-сторінці
Головне питання будь-якого починаючого програміста: "Як оформити програму і виконати її?". Спробуємо на нього відповісти якомога простіше, але при цьому не забуваючи про всі способи застосування JavaScript-коду.
перше, виконує JavaScript-код браузер. У нього вбудований інтерпретатор JavaScript. Отже, виконання програми залежить від того, коли і як цей інтерпретатор отримує управління. Це, в свою чергу, залежить від функціонального застосування коду. В загальному випадку можна виділити чотири способи функціонального застосування JavaScript:
В· гіпертекстова посилання (схема URL);
В· оброблювач події (handler);
В· підстановка (Entity) (в Microsoft Internet Explorer реалізована у версіях від 5.X і вище);
В· вставка (Контейнер SCRIPT).
У підручниках з JavaScript опис застосування JavaScript зазвичай починають з контейнера SCRIPT . Але з точки зору програмування це не зовсім правильно, оскільки такий порядок не дає відповіді на ключове питання: як JavaScript-код отримує управління? Тобто яким чином викликається і виконується програма, написана на JavaScript і розміщена в HTML-документі.
В залежності від професії автора HTML-сторінки і рівня його знайомства з основами програмування можливі кілька варіантів початку освоєння JavaScript. Якщо ви програміст класичного штибу (С, Fortran, Pascal і т.п.), то найпростіше починати з програмування всередині тіла документа, якщо ви звикли програмувати під Windows, то в цьому випадку починайте з програмування обробників подій, якщо ви маєте тільки досвід HTML-розмітки або давно не писали програм, то тоді краще почати з програмування гіпертекстових переходів.
1.4 URL-схема JavaScript
Схема URL (Uniform Resource Locator) - це один з основних елементів Web-технології. Кожен інформаційний ресурс в Web має свій унікальний URL. URL вказують в атрибуті HREF контейнера A , в атрібте SRC контейнера IMG , в атрибуті ACTION контейнера FORM і т.п. Всі URL підрозділяються на схеми доступу, які залежать від протоколу доступу до ресурсу, наприклад, для доступу до FTP-архіву застосовується схема ftp , для доступу до Gopher-архіву - схема gopher , для відправки електронної пошти - схема smtp . Тип схеми визначається за першим компоненту URL: intuit.ru/directory/page.html . В даному випадку URL починається з http - це і є визначення схеми доступу (схема http).
Основним завданням мови програмування гіпертекстової системи є програмування гіпертекстових переходів. Це означає, що при виборі тієї або іншої гіпертекстового посилання викликається програма реалізації гіпертекстового переходу. У Web-технології стандартною програмою є програма завантаження сторінки. JavaScript дозволяє поміняти стандартну програму на програму користувача. Для того щоб відрізнити стандартний перехід по протоколу HTTP від ​​переходу, програмованого на JavaScript, розробники мови запровадили нову схему URL - JavaScript:
...
В даному випадку текст "JavaScript_код" позначає програми-обробники на JavaScript, які викликаються при виборі гіпертекстового посилання в першому випадку і при завантаженні картинки - в другому. Наприклад, при натисканні на гіпертекстове посилання Увага! можна отримати вікно попередження:
Увага!
Рис. 1.1.
А при натисканні на кнопку типу submit у формі можна заповнити текстове поле цієї ж форми:
ACTION = "JavaScript: window.document.fiVALUE =
'Натиснули кнопку Click '; void (0);">
У URL можна розміщувати складні програми та виклики функцій. Варто тільки пам'ятати, що схема JavaScript працює не у всіх браузерах, а тільки у версіях Netscape Navigator і Internet Explorer, починаючи з четвертої.
Таким чином, при програмуванні гіпертекстового переходу інтерпретатор отримує управління після того, як користувач "клікнув" по гіпертекстовому посиланню.
1.5 Обробники подій
Такі програми, як обробники подій ( handler ), вказуються в атрибутах контейнерів, з якими ці події пов'язані. Наприклад, при натисканні на кнопку відбувається подія click :
"window.alert ('intuit');">
1.6 Підстановки
Підстановка ( entity ) зустрічається на Web-сторінках досить рідко. Тим не менше це досить потужний інструмент генерації HTML-сторінки на стороні браузера. Підстановки використовуються як значення атрибутів HTML-контейнерів. Наприклад, як значення за умовчанням поля форми, визначального домашню сторінку користувача, буде вказаний URL поточної сторінки:
... Тіло документа ...
HTML-коментарі тут вставлені для захисту від інтерпретації даного фрагмента сторінки HTML-парсером в старих браузерах (у високого начальства ще зустрічаються). У свою чергу, кінець HTML-коментаря захищений від інтерпретації JavaScript-інтерпретатором (//на початку рядка). Крім того, як значення атриб...