| WWW.IATP.BY - Internet Access and Training Program in Belarus | Supported by Cheap Microsoft Windows XP Professional |
| Программирование на JavaScript для Web |
|
1. Введение в JavaScript. Понятие Объектной моделиСкриптовые языки в некотором роде перевернули мир, и именно благодаря им появился DHTML, который позволяет делать со страничкой практически что угодно. Как известно, всего два языка претендуют на лавры победителя в броузере. Это VBScript - подмножество Visual Basic-а и JavaScript. Вот последним мы и займемся, как наиболее универсальным. Сами по себе изучать скриптовые языки не имеет смысла, т.к. они тесно связаны с объектной моделью броузера и, по сути дела, большая часть скриптов просто устанавливает соответствующие свойства объектов или вызывает их методы. Что такое объектная модель?Давным-давно, когда броузеры еще имели номер версии равный единице, ничего подобного не было и в помине. Информация просто выводилась на дисплей по мере поступления, не подвергаясь никаким изменениям. Все было просто, и даже глюков совместимости еще не было :) Сейчас же путь странички до дисплея гораздо дольше. Давайте поэтапно проследим ее путь: Страничка скачивается с сайта и размещается в памяти компьютера Производится анализ странички, в результате которого она препарируется на составляющие. Блоки, из которых состоит страничка (<body></body>, <head></head>, <p></p> и т.д.) размещаются во временной базе данных соответственно структуре объектной модели. База данных становится доступной другим программам и, в частности, рендеру, который выводит страничку на экран. Для доступа и управления содержимым этой базы данных броузер предоставляет нам механизм объектов и скриптовый язык, посредством которого и выполняется доступ. Разумеется, содержимое базы может быть изменено до вывода на экран, что и позволяет работать DHTML. Но объектная модель остается работать даже после того, как страничка показана на экране дисплея. Это дает нам возможность в небольших пределах (а в последних версиях HTML 4.0 практически полностью) менять содержимое странички после загрузки. Структура объектной моделиЧтобы было понятно, о чем мы говорим, рассмотрим общую структуру объектной модели. Ниже приведена объектная модель Internet Explorer-а версии 4 и выше.
Объектная модель Netscape Navigator-а немного отличается от вышеприведенной, но ее смысл точно такой же. А использование JavaScript позволяет нам обойти различия в реализации объектных моделей. Вместо того, чтобы подробно объяснять каждый объект, входящий в модель броузера, я буду разъяснять смысл соответствующих объектов, их свойств и методов на конкретных примерах по мере возникновения в том необходимости. Как видите, структура объектной модели достаточно сложна, но строго определена, и существует однозначный способ доступа к любому свойству или методу. Синтаксис полностью соответствует тому, что используется в объектных языках. Т.е. нижележащие объекты отделяются от вышележащих точкой, и для доступа к конкретному свойству нужно просто корректно построить строку доступа. И, как Вы понимаете, вот здесь-то на сцену и выходит скриптовый язык, который и позволяет нам манипулировать объектами. Как любой язык программирования, JavaScript имеет определенный набор типов переменных, операторов, встроенных функций и объектов. Изучение JavaScript как такового как раз и заключаются в запоминании всего этого. Но, как Вы понимаете, оторванный от объектной модели, он мало полезен сам по себе. А потому я просто расскажу о популярных эффектах, применяемых на страничках, попутно давая пояснения. И надеюсь, что если это Вас заинтересует, то более сложные вещи Вы уже напишите сами. Как и где размещать код скрипта?Но сначала мы немного отвлечемся от эффектов и поговорим о том, как и где размещать JavaScript. Так как язык скриптовый и рассчитан на работу на web-страничках, то его код размещается непосредственно в HTML-коде странички. Причем, код на JavaScript обычно состоит из двух частей:
Описание функций должно располагаться в теге <head></head> - это гарантирует нам, что к моменту вызова функции она уже будет находиться в памяти компьютера. Для вставки кода используется специальный тег <script>, в параметрах которого мы и определяем конкретный язык. Вот пример типичного описания JavaScript-вставки:
Обратите внимание, что непосредственно сам код заключен в тег комментария. Это сделано для того, чтобы более старые броузеры игнорировали непонятные им команды. Новые же программы знают о существовании закомментированных скриптов и им это не мешает. Заметьте также, что закрывающий тег комментария несколько необычен и предваряется двумя косыми чертами. Две косые черты - это комментарий языка JavaScript, т.е. скрипт игнорирует все, что идет после него. А сделана такая сложная конструкция ради совместимости с Netscape, который закрывающий HTML-комментарий воспринимает как непонятную ему команду и, соответственно, вызывает ошибку. 2. Использование массивовМассивыПервый тип новых объектов, которые мы рассмотрим, являются массивы. Тип "Array" введен в JavaScript 1.1 для возможности манипулирования самыми разными объектами, которые отображаются Navigator'ом. Это - список всех гипертекстовых ссылок данной страницы Website, список всех картинок на данной странице, список всех applet'ов данной страницы, список всех элементов формы и т.п. Пользователь может создать и свой собственный массив, используя конструктор Array(). Делается это следующим образом:
Размерность массива может динамически изменяться. Можно сначала определить массив, а потом присвоить одному из его элементов значение. Как только это значение будет присвоено, изменится и размерность массива:
В данном случае массив будет состоять из 6 элементов, т.к. первым элементом массива считается элемент с индексом 0. Для массивов определены три метода: join, reverse, sort. Join объединяет элементы массива в строку символов, в качестве аргумента в этом методе задается разделитель:
В результате выполнения присваивания значения строке символов string мы получим следующую строку:
Другой метод, reverse, изменяет порядок элементов массива на обратный, а метод sort отсортировывает их в порядке возрастания. У массивов есть два свойства: length и prototype. Length определяет число элементов массива. Если нужно выполнить некоторую рутинную операцию над всеми элементами массива, то можно воспользоваться циклом типа:
Свойство prototype позволяет добавить свойства к объектам массива. Однако наиболее часто, в программе на JavaScript используются встроенные массивы, главным образом графические образы (Images) и гипертекстовые ссылки (Links). 3. Управление ходом программыВообще, все типы операторов, которые поддерживаются обычными языками программирования, реализованы JavaScript (+,-,*, /, %, >>,<<, +=, -=, ...). При этом оператор сложения "+" при работе со строками означает конкатенацию последних, т.е. добавление в конец строки новую строку:
Кроме операций с числами и описаний стандартных классов в JavaScript есть команды управления потоком вычислений:
var - оператор объявления переменной.
Тип переменной определяется по присвоенному ей значению. Перечисленные здесь операторы не представляют полного перечня операторов JavaScript, но их вполне достаточно для выполнения практических занятий. 4. Методы и функцииМетод absВозвращает абсолютное значение числа. Синтаксис:
Метод acosВозвращает арккосинус числа (в радианах). Синтаксис:
Метод MathОписание: Метод acos возвращает числовое значение между 0 и Пи. Если значение number находится за пределами данного диапазона, возвращаемое значение всегда будет 0. Смотрите также: методы asin, atan, cos, sin и tan. Метод alertОтображает диалоговое окно Alert с сообщением и кнопкой OK. Синтаксис:
Метод windowОписание: Метод alert используется для отображения сообщения, не требующего решения пользователя. Аргумент message определяет сообщение, которое содержит диалоговое окно. Хотя alert является методом объекта window вам не нужно определять windowReference, при его вызове. Например, windowReference.alert() необязательно. Смотрите также: методы confirm, prompt. Метод anchorСоздает HTML якорь, который используется как гипертекстовая ссылка. Синтаксис:
Метод stringОписание: Метод anchor используется с методами write или writeln для программного
создания и отображения якоря в документе. Якорь создается с помощью метода
anchor, а write или writeln используется для отображения якоря в документе. Смотрите также: метод link Метод asinВозвращает арксинус числа (в радианах). Синтаксис:
Метод MathОписание: Метод asin возвращает числовое значение между -Пи/2 и Пи/2. Если значение number находится за пределами данного диапазона, возвращаемое значение всегда будет 0. Смотрите также: методы acos, atan, cos, sin, tan. Метод atanВозвращает арктангенс числа (в радианах). Синтаксис:
Метод atanОписание: Метод atan возвращает числовое выражение между -Пи/2 и Пи/2. Смотрите также: методы acos, asin, cos, sin, tan. Метод backПозволяет вернуться на предыдущий URL в списке посещенных URL'ей. Синтаксис:
Метод historyОписание: Этот метод выполняет действие равносильное выбору пользователем кнопки Back в окне Navigator'а. Метод back также равносилен history.go(-1). Смотрите также: методы forward, go. Метод bigВызывает строку, отображаемою большим шрифтом, как если установить ей таг <BIG>. Синтаксис:
Метод stringОписание: Для форматирования и отображения строки в документе метод big используется с методами write или writeln. Смотрите также: методы fontsize, small. Метод blinkВызывает мигающую строку, как если установить ей таг <BLINK>. Синтаксис:
Метод stringОписание: Для форматирования и отображения строки в документе метод blink используется с методами write или writeln. Смотрите также: методы bold, italics, strike. Метод blurИзменен в Navigator 3.0. Синтаксис:
password любое значение атрибута NAME объекта password или элемент массива elements. select любое значение атрибута NAME объекта select или элемент массива elements. textName любое значение атрибута NAME объекта text или элемент массива elements. textareaName любое значение атрибута NAME объекта textarea или элемент массива elements. Метод password, select, text, textarea.Описание: Метод blur используется для удаления фокуса с указанного элемента формы. Смотрите также: методы focus, select. Метод boldВызывает строку, отображаемую жирным шрифтом, как если установить ей таг <B>. Синтаксис:
Метод stringОписание: Для форматирования и отображения строки в документе метод bold используется с методами write или writeln. Смотрите также: методы blink, italics, strike. Метод ceilВозвращает ближайшее целое числа, округленного в большую сторону или равное числу. Синтаксис:
Метод charAtВозвращает символ указанный в index. Синтаксис:
Метод stringОписание: Символы в строке индексируются слева направо. Индексом первого символа является 0, индексом последнего символа - stringName.length-1. Если вы указали index превышающий количество символов в строке, JavaScript возвратит пустую строку. Смотрите также: методы indexOf, lastindexOf. Метод clearTimeoutОкончание задержки, установленной методом setTimeout. Синтаксис:
Метод frame, windowОписание: Смотрите описание метода setTimeout Смотрите также: метод setTimeout Метод clickИмитирует щелчок мыши на выбранном элементе формы. Синтаксис:
radioName[index].click() checkboxName.click() buttonName любое значение атрибута NAME объектов button, reset или submit
или элемент массива elements. Метод button, checkbox, radio, reset, submit.Описание: Результат действия метода click изменяется в зависимости от вызываемого элемента: для button, reset и submit выполняется одинаковое действие - нажатие кнопки.
Метод close (объект document)Закрывает поток вывода и завершает вывод данных в рабочую область Navigator'а для отображения. Синтаксис:
Метод documentОписание: Метод close закрывает поток вывода, открытый методом document.open(). Если поток был открыт для рабочей области Navigator'а, метод close завершает вывод содержимого потока на экран. Таги стиля шрифта, такие как <BIG> и <CENTER>, автоматически закрывают поток вывода. Метод close также останавливает "meteor shower" в иконе Navigator'а и отображает "Document: Done" в строке состояния. Смотрите также: методы open, write, writeln. Метод close (объект window)Изменен в Navigator 3.0. Синтаксис:
Метод windowОписание: Метод close закрывает указанное окно. Если вы объявляете close без указания
windowReference, то JavaScript закрывает текущее окно. Смотрите также: метод open Метод confirm Отображает диалоговое окно с указанным сообщением и кнопками OK и Cancel. Синтаксис: confirm("message") Метод: window Описание: Метод confirm используется для принятия пользователем решения, требующего
выбора OK или Cancel. Аргумент message определяет сообщение, которое требует
решения пользователя. Метод confirm возвращает true, если пользователь выбрал
OK, и false, если пользователь выбрал Cancel. Смотрите также: методы alert, prompt Метод cos Возвращает косинус числа. Синтаксис: Math.cos(number)
Смотрите также: методы acos, asin, atan, sin, tan. Функция escape Возвращает ASCII значение аргумента, закодированного в ISO Latin-1. Синтаксис: escape("string") Описание: Функция escape не является методом, связанным с любым объектом, но является
частью самого языка. Смотрите также: функцию unescape. Функция eval Функция eval выполняет строку-аргумент и подставлает полученное значение вместо себя. Синтаксис: eval("string") Описание: Функция eval является встроенной функцией JavaScript. Она не является методом,
связанным с любым объектом, но является частью самого языка. Метод exp Возвращает enumber, где number является аргументом, а e является экспонентой, основанием натурального логарифма. Синтаксис: Math.exp(number) Метод: 1. password.focus()
password любое значение атрибута NAME объекта password или элемент массива
elements.2. select.focus() 3. textName.focus() 4. textareaName.focus() select любое значение атрибута NAME объекта select или элемент массива elements. textName любое значение атрибута NAME объекта text или элемент массива elements. textareaName любое значение атрибута NAME объекта textarea или элемент массива elements. Метод: password, select, text, textarea. Описание: Метод focus используется для установки фокуса на указанный элемент формы. Вы можете затем программно ввести значение в элемент или позволить пользователю ввести значение. Смотрите также: методы blur, select. Метод fontcolor Вызывает строку, отображаемую установленным цветом, как если поместить ее в таг <FONT COLOR=color>. Синтаксис: stringName.fontcolor(color) stringName любая строка или свойство существующего объекта. color строка или свойство существующего объекта, определяющая цвет как шестиразрядное шестнадцатиричное число (RGB) или как одно из строковых названий в списке Color Value. Метод: string Описание: Для форматирования и отображения строки в документе метод fontcolor используется с методами write и writeln. Если вы определяете color как шестиразрядное шестнадцатиричное число вы должны использовать формат rrggbb. Метод fontcolor анулирует значение, установленное в свойстве fgColor. Метод fontsize Вызывает строку, отображаемую установленным размером шрифта, как если поместить ее в таг <FONT SIZE=size>. Синтаксис: stringName.fontsize(size) stringName любая строка или свойство существующего объекта. size целое число от 1 до 7 или строка, представляющая собой целое со знаком (+ или -) от 1 до 7, или свойство существующего объекта. Описание: Для форматирования и отображения строки в документе метод fontsize используется с методами write и writeln. Когда вы определяете size как целое, вы устанавливаете размер stringName в один из семи специфицированных размеров. Когда вы определяете size как "-2", вы устанавливаете размер шрифта stringName относительно размера, установленного в таге . Смотрите также: методы big, small. Метод forward Загружает следующий URL в списке посещенных URL'ей. Синтаксис: history.forward() Метод: history Описание: Этот метод выполняет действие равносильное выбору пользователем кнопки Forward в окне Navigator'а. Метод forward также равносилен history.go(1). Смотрите также: методы back, go. Метод getDate Возвращает число месяца для указанной даты. Синтаксис: dateObjectName.getDate() dateObjectName любое имя объекта date или свойство существующего объекта. Метод: Date Описание: Значение, возвращаемое getDate, является целым числом от 1 до 31. Смотрите также: метод setDate Метод getDay Возвращает день недели для указанной даты. Синтаксис: dateObjectName.getDay() dateObjectName любое имя объекта date или свойство существующего объекта. Метод: Date Описание: Значение, возвращаемое getDay, является целым числом, соответствующим дню недели: ноль для воскресенья, один для понедельника, два для вторника и так далее. Метод getHours Возвращает часы для указанной даты. Синтаксис: dateObjectName.getHours() dateObjectName любое имя объекта date или свойство существующего объекта. Метод: Date Описание: Значение, возвращаемое getHours, является целым числом от 0 до 23. Смотрите также: метод setHours. Метод getMinutes Возвращает минуты для указанной даты. Синтаксис: dateObjectName.getMinutes() dateObjectName любое имя объекта date или свойство существующего объекта. Метод: Date Описание: Значение, возвращаемое getMinutes, является целым числом от 0 до 59. Смотрите также: метод setMinutes. Метод getMonth Возвращает месяц для указанной даты. Синтаксис: dateObjectName.getMonth() dateObjectName любое имя объекта date или свойство существующего объекта. Метод: Date Описание: Значение, возвращаемое getMonth, является целым числом от 0 до 11. Ноль соответствует январю, один - февралю и так далее. Смотрите также: метод setMonth. Метод getSeconds Возвращает секунды в текущем времени. Синтаксис: dateObjectName.getSeconds() dateObjectName любое имя объекта date или свойство существующего объекта. Метод: Date Описание: Значение, возвращаемое getSeconds, является целым числом от 0 до 59. Смотрите также: метод setSeconds. Метод getTime Возвращает числовое значение, соответствующее времени для указанной даты. Синтаксис: dateObjectName.getTime() dateObjectName любое имя объекта date или свойство существующего объекта. Метод: Date Описание: Значение, возвращаемое методом getTime, является числом миллисекунд, начиная с 1 января 1970 00:00:00. Вы можете использовать этот метод для назначения даты и времени другому объекту date. Смотрите также: метод setTime. Метод getTimezoneOffset Возвращает смещение временной зоны в минутах относительно гринвичского меридиана. Синтаксис: dateObjectName.getTimezoneOffset() dateObjectName любое имя объекта date или свойство существующего объекта. Метод: Date Описание: Смещение временной зоны является разницей между местным временем и GMT (гринвичским временем). Сезонное время (зимнее, летнее) не дает возможности говорить об этом смещении как о константе. Метод getYear Возвращает год для указанной даты. Синтаксис: dateObjectName.getYear() dateObjectName любое имя объекта date или свойство существующего объекта. Метод: Date Описание: Значение, возвращаемое getYear, равно году минус 1900. Например, если год равен 1976, то возвращаемое значение равно 76. Смотрите также: метод setYear. Метод go Загружает URL из списка посещенных URL'ей. Синтаксис: history.go(delta | location) delta целое число или свойство существующего объекта, представляющее собой относительную позицию в списке посещенных URL'ей. location строка или свойство существующего объекта, представляющая собой URL или его часть из списка посещенных URL'ей. Метод: history Описание: Метод go позволяет перейти на адрес, содержащийся в списке посещенных URL'ей, который указан вами в качестве аргумента метода go. Вы можете посмотреть этот список, выбрав History в меню Window. Последние 10 позиций списка также отображаются в меню Go. Аргумент delta может быть положительным и отрицательным числом. Если delta больше нуля, то метод go переходит на URL вперед в списке посещенных URL'ей; в противном случае переход осуществляется на URL назад. Если delta равна 0, то Navigator перезагружает текущую страницу. Аргумент location является строкой. location выбирает для загрузки ближайший адрес в списке посещенных URL'ей, содержащий подстроку location, указанную вами в качестве аргумента. Каждая часть URL содержит определенную информацию. Смотрите объект location, где описаны компоненты URL. Смотрите также: методы back, forward. Метод indexOf Возвращает индекс позиции впервые встреченного искомого значения в вызванном объекте string. Поиск начинается с fromIndex. синтаксис: stringName.indexOf(searchValue, [fromIndex]) stringName любая строка или свойство существующего объекта. searchValue строка или свойство существующего объекта, представляющая собой искомое значение. fromIndex место в вызванной строке, с которого начинается поиск. Это может быть любое целое число от 0 до stringName.length-1 или свойство существующего объекта. Метод: string Описание: Символы в строке индексируются слева направо. Индекс первого символа равен 0, индекс последнего - stringName.length-1. Если вы не указываете значение fromIndex, JavaScript принимает по умолчанию 0. Если searchValue не найден, JavaScript возвращает -1. Смотрите также: методы charAt, lastIndexOf. Функция isNaN Изменена в Navigator 3.0. На UNIX платформах проверяет аргумент, является ли он "NaN" (не числом). Синтаксис: isNaN(testValue) testValue значение, которое вы хотите проверить. Описание: Функция isNaN является встроенной функцией JavaScript. Она не является методом, связанным с любым объектом, но является частью самого языка. Функция isNaN применяется только на UNIX платформах. На всех платформах, за исключением Windows, функции parseFloat и parseInt возвращают "NaN", когда они принимают нечисловое значение. Значение "NaN" не является числом в любом случае. Вы можете вызывать функцию NaN для того, чтобы определить является ли результат parseFloat или parseInt "NaN". Если над "NaN" совершаются арифметические операции, то их результатами также будет "NaN". Функция isNaN возвращает true или false. Смотрите также: функции parseFloat, parseInt. Метод italics Вызывает строку, отображаемую курсивом, как если установить ей таг <I>. Синтаксис: stringName.italics() stringName любая строка или свойство существующего объекта. Метод: string Описание: Для форматирования и отображения строки в документе метод italics используется с методами write или writeln. Смотрите также: методы blink, bold, strike. Метод lastIndexOf Возвращает индекс впервые встреченного искомого значения в вызванном объекте string. Поиск по строке осуществляется в обратном направлении, начиная с fromIndex. Синтаксис: stringName.lastindexOf(searchValue, [fromIndex]) stringName любая строка или свойство существующего объекта. searchValue строка или свойство существующего объекта, представляющая собой искомое значение. fromIndex место в вызванной строке, с которого начинается поиск. Это может быть любое целое число от 0 до stringName.length-1 или свойство существующего объекта. Метод: string Описание: Символы в строке индексируются слева направо. Индекс первого символа равен 0, индекс последнего - stringName.length-1. Если вы не указываете значение fromIndex, JavaScript принимает по умолчанию stringName.length-1 (конец строки). Если searchValue не найден, JavaScript возвращает -1. Смотрите также: методы charAt, IndexOf. Метод link Создает гипертекстовую ссылку HTML, по которой можно перейти на другой URL. Синтаксис: linkText.link(hrefAttribute) Метод: string Описание: Для создания и отображения гипертекстовой ссылки в документе метод link используется с методами write или writeln. Создайте ссылку методом link, затем вызовите write или writeln для отображения ссылки в документе. В синтаксисе строка linkText представляет собой текст, который увидит пользователь. Строка hrefAttribute представляет собой атрибут HREF тага <A>, это будет целевой URL. Каждая часть URL содержит определенную информацию. Смотрите объект location, где описаны компоненты URL. Ссылки, созданные методом link, становятся элементами массива links. Смотрите также: метод anchor. Метод log Возвращает натуральный логарифм числа (по основанию e). Синтаксис: Math.log(number) number любое положительное числовое выражение или свойство существующего объекта. Метод: Math Описание: Если значение number находится за пределами диапазона, возвращенное значение всегда будет -1.797693134862316e+308. Смотрите также: методы exp, pow. Метод max Возвращает большее число из двух. Синтаксис: Math.max(number1, number2) number1 и number2 любые числовые аргументы или свойства существующих объектов. Метод: Math Смотрите также: метод min. Метод min Возвращает меньшее число из двух. Синтаксис: Math.min(number1, number2) number1 и number2 любые числовые аргументы или свойства существующих объектов. Метод: Math Смотрите также: метод max. Метод open (объект document) Открывает поток для получения вывода методами write и writeln. Синтаксис: document.open(["mimeType"]) mimeType устанавливает любой из следующих типов документа: text/html text/plain image/gif image/jpeg image/x-bitmap plug-In plug-In любой составной plug-in MIME тип, поддерживаемый Netscape'ом. Метод: document Описание: Метод open открывает поток для получения вывода методами write и writeln. Если mimeType является текстом или картинкой, то поток открыт в рабочую область Navigator'а; иначе, поток открыт на plug-in. Если документ уже существует в целевом окне, то метод open очищает его. Для закрытия потока используйте метод document.close(). Метод close вызывает текст или картинку, которые были отправлены в рабочую область Navigator'а для отображения. После использования document.close(), введите document.open() снова, когда вы захотите начать вывод другого потока. mimeType является необязательным аргументом, определяющим тип документа. Если вы не указываете mimeType, то метод open принимает по умолчанию text/html. Описание mimeType: text/html определяет текст, содержащий ASCII текст в HTML формате. text/plain определяет текст, содержащий ASCII текст с символами конца строки, для ограничения отображаемых строк. image/gif определяет документ с закодированными байтами, содержащий GIF заголовок и размеры в пикселях. image/jpeg определяет документ с закодированными байтами, содержащий JPEG заголовок и размеры в пикселях. image/x-bitmap определяет документ с закодированными байтами, содержащий bitmap заголовок и размеры в пикселях. plug-in загружает определенный plug-in и использует его как место назначения для методов write и writeln. Например, "x-world/vrtml" загружет VR Scout VRML plug-in из Chaco Communications, а "aplication/x-director" загружает Macromedia Shockware plug-in. Смотрите также: методы close, write, writeln. Метод open (объект window) Открывает новое окно web-броузера. Синтаксис: [windowVar=][window].open("URL", "windowName", ["windowFeatures"]) windowVar имя нового окна. Эта переменная используется при ссылках на свойства, методы и контейнеры окна. URL определяет URL, открываемый в новом окне. Смотрите объект location, где описаны компоненты URL. windowName имя окна, используемое в атрибуте TARGET тага <FORM> или <A>. windowName может содержать только буквенно-цифровые символы или символ подчеркивания (_). windowFeatures список через запятую любых из следующих опций или значений: toolbar[=yes | no] | [=1 | 0]
Вы можете использовать любой набор этих опций. Опции разделяются запятой.
Не делайте пробелов между опциями.location[=yes | no] | [=1 | 0] directoties[=yes | no] | [=1 | 0] status[=yes | no] | [=1 | 0] menubar[=yes | no] | [=1 | 0] scrollbars[=yes | no] | [=1 | 0] resizable[=yes | no] | [=1 | 0] width=pixels height=pixels pixels положительное целое число, определяющее размеры окна в пикселях. Метод: window Описание: Метод open открывает новое окно web-броузера клиента, что равносильно выбору New WebBrowser из меню File Navigator'а. Аргумент URL определяет URL, содержащийся в новом окне. Если URL является пустой строкой, то создастся пустое окно. В событиях вы должны указывать window.open() вместо обычно используемого open(). Объявление open() без определения имени объекта равносильно document.open(). windowFeatures является необязательным списком перечисленных через запятую опций для нового окна. Булевы опции windowFeatures принимают значение true, если они определены без значений, или как yes или 1. Например, open("", "messageWindow", "toolbar") и open("", "messageWindow", "toolbar=1") как в первом, так и во втором случае опция toolbar принимает значение true. Если windowName не определяет существующего окна и вы не определяете windowFeatures, то все булевы опции windowFeatures принимают по умолчанию значение true. Если вы определяете любую из опций windowFeatures, то все остальные опции принимают значение false, если вы их не определите дополнительно. Описание windowFeatures: toolbar создает стандартные рабочие инструменты Navigator'а, с такими кнопками как "Back" и "Forward". location создает поле ввода Location. directories создает кнопки стандартных директорий Navigator'а, такие как "What's New" и "What's Coll". status создает строку состояния внизу окна. menubar создает меню вверху окна. scrollbars создает горизонтальную и вертикальную прокрутки, когда документ больше, чем размер окна. resizable позволяет пользователю изменять размер окна. width определяет ширину окна в пикселях. height определяет высоту окна в пикселях. Смотрите также: метод close. Метод parse Возвращает количество миллисекунд в строковом представлении даты, начиная с 1 января 1970 00:00:00, по местному времени. Синтаксис: Date.parse(dateString) Метод: Date Описание: Метод parse выдает дату в строковом представлении (например, "Dec 25, 1995") и возвращает количество миллисекунд, начиная с 1 января 1970 00:00:00 (по местному времени). Эта функция используется для установки значений даты, основанных на строковом значении, например, в сочетании с методом setTime и объектом Date. Полученная строка представляет собой время, parse возвращает значение времени. Она принимается в стандартном синтаксисе даты IETF: "Mon, 25 Dec 1995 13:30:00 GMT". Она понимает континентальную US временную зону, но в основном, используется временная зона смещения, например "Mon, 25 Dec 1995 13:30:00 GMT+0430" (4 часа, 30 минут западнее Гринвича). Если вы не указали временной зоны, принимается местная временная зона. GMT и UTC считаются эквивалентными. Так как функция parse является статическим методом Date, вы всегда используете ее как Date.parse(), а не как метод созданного вами объекта date. Смотрите также: метод UTC Функция parseFloat Анализирует строковый аргумент и возвращает число с плавающей точкой. Синтаксис: parseFloat(string) string строка, представляющая собой значение, которое вы хотите проанализировать. Описание: Функция parseFloat является встроенным объектом JavaScript. Она не является методом, связанным с любым объектом, но является частью самого языка. Функция parseFloat анализирует строку-аргумент и возвращает число с плавающей точкой. Если встреченный им символ отличается от знака (+ или -), цифры (0-9), десятичной точки или экспоненты, то он возвращает значение до этой точки, игнорируя этот символ и все последующие символы. Если первый символ не может быть конвертирован в число, parseFloat возвращает одно из следующих значений: "пусто" на Windows платформах. "NaN" на любых других платформах указывает на то, что значение не является числом. Смотрите также: методы isNaN, parseInt. Функция parseInt Анализирует строковый аргумент и возвращает целое число, определенное как основание. Синтаксис: parseInt(string [,radix]) string строка, которая представляет собой значение, которое вы хотите проанализировать. radix целое число, представляющее собой основание, возвращаемого значения. Описание: Функция parseFloat является встроенным объектом JavaScript. Она не является методом, связанным с любым объектом, но является частью самого языка. Функция parseFloat анализирует его первый аргумент-строку и пытается возвратить целое число, определенное как основание. Например, основание 10 означает перевод в десятичное число, 8 - восьмеричное, 16 - шестнадцатиричное, и т.д. Если parseInt в указанном основании встречает символ, не являющийся числом, то он пропускает его и все следующие символы и возвращает целочисленное значение разобранное до точки. ParseInt усекает числа до целочисленных значений. Если основание не определено или определено как 0, JavaScript принимает следующее: если ввод string начинается с "0x", то основание равно 16 (шестнадцатиричное). если ввод string начинается с "0", то основание равно 8 (восьмиричное). если ввод string начинается с любого другого значения, то основание равно 10 (десятичное). если первый символ не может быть конвертирован в число, parseFloat возвращает одно из следующих значений: o "пусто" на Windows платформах. o "NaN" на любых других платформах указывает на то, что значение не является числом. Для арифметических целей значение "NaN" не явяляется числом в
любом случае. Вы можете вызвать функцию isNaN для того, чтобы определить
является ли результат parseInt "NaN". Если "NaN" применить
в арифметических операциях, то их результатами также будут "NaN".
stringName любая строка или свойство существующего объекта. Date.UTC(year, month, day, [, hrs] [, min] [, sec])
Описание:year год после 1990. month месяц между 0-11. day день месяца между 1-31. hrs часы между 0-23. min минуты между 0-59. sec секунды между 0-59. Метод: Date UTC берет параметры даты, разделенные запятой, и возвращает количество миллисекунд, начиная с 1 января 1970 00:00:00, GMT. Так как UTC является статическим методом Date, используйте его как Date.UTC(), а не как метод созданного вами объекта date. Смотрите также: метод parse. Метод write Пишет одно или более HTML выражений в документ в указанном окне. Синтаксис: document.write(expression1 [,expression2], ... [,expressionN]) с expression1 по expressionN любое JavaScript выражение или свойство существующего объекта. Метод: document Описание: Метод write отображает любое количество выражений в окне документа. Вы можете определить любое JavaScript выражение методом write, включая числовое, строковое или логическое. Метод write является таким же как метод writeln, но метод write не добавляет символа перевода на новую строку в конец выходной информации. Метод write используется внутри тага <SCRIPT> или внутри события. События выполняются после закрытия документа, поэтому метод write по умолчанию откроет новый документ с mimeType text/html, если вы не укажете метод document.open() в событии. Смотрите также: методы close, open, writeln. Метод writeln Пишет одно или более HTML выражений в документ в указанном окне, добавляя символ перевода на новую строку в конец выходной информации. Синтаксис: document.writeln(expression1 [,expression2], ... [,expressionN]) с expression1 по expressionN любое JavaScript выражение или свойство существующего объекта. Метод: document Описание: Метод writeln отображает любое количество выражений в окне документа. Вы можете определить любое JavaScript выражение методом write, включая числовое, строковое или логическое. Метод writeln является таким же как метод write, но метод writeln добавляет символ перехода на новую строку в конец выходной информации. HTML игнорирует символ новой строки, за исключением определенных тагов, таких как <PRE>. Метод writeln используется внутри любого тага <SCRIPT> или внутри события. События выполняются после закрытия документа, поэтому метод writeln по умолчанию откроет новый документ с mimeType text/html, если вы не укажете метод document.open() в событии.
onBlur onMouseOver Изменен в Navigator 3.0. Событие blur происходит когда поля формы select, text или textarea теряют фокус. Обработчик событий onBlur выполняет программу JavaScript, когда происходит событие blur. Синтаксис onBlur смотрите в описании соответствующих объектов. Обработчик событий: select, text, textarea Смотрите также: обработчики событий onChange, onFocus Обработчик событий onChange Событие change происходит, когда поля формы select, text или textarea теряют фокус и их значения изменяются. Обработчик событий onChange выполняет программу JavaScript, когда происходит событие change. Обработчик событий onChange используется для подтверждения данных после их изменения пользователем. Синтаксис onChange смотрите в описании соответствующих объектов. Обработчик событий: select, text, textarea Смотрите также: обработчики событий onBlur, onFocus Обработчик событий onClick Событие click происходит при щелчке мышью на объекте формы. Обработчик событий onClick выполняет программу JavaScript, когда происходит событие click. Синтаксис onClick смотрите в описании соответствующих объектов. Обработчик событий: button, checkbox, radio, link, reset, submit Обработчик событий onFocus Изменен в Navigator 3.0. Событие focus происходит, когда поле получает фокус ввода с клавиатуры или щелчком мыши. Выбор результатов внутри поля связано с событием select, но не с событием focus. Обработчик событий onFocus выполняет программу JavaScript, когда происходит событие focus. Синтаксис onFocus смотрите в описании соответствующих объектов. Обработчик событий: select, text, textarea Смотрите также: обработчики событий onBlur, onChange Обработчик событий onLoad Событие load происходит, когда Navigator завершает загрузку окна или всех фреймов внутри тага <FRAMESET> . Обработчик событий onLoad выполняет программу JavaScript, когда происходит событие load. Обработчик событий onLoad используется внутри тагов <BODY> или <FRAMESET>, например, <BODY onLoad="...">. В отношении <FRAMESET> и <FRAME> событие onLoad, размещенное внутри фрейма в таге <BODY>, выполняется перед событием onLoad, размещенном внутри <FRAMESET> в таге <FRAMESET> Обработчик событий: window Смотрите также: обработчик событий onUnload Обработчик событий onMouseOver Событие mouseOver происходит каждый раз, когда курсор мыши попадает на объект. Обработчик событий onMouseOver выполняет программу JavaScript, когда происходит событие mouseOver. Вы должны возвращать true внутри обработчика событий, если вы хотите использовать свойства status или defaultStatus с обработчиком событий onMouseOver. Синтаксис onMouseOver смотрите в описании соответствующих объектов. Обработчик событий: link Обработчик событий onSelect Событие select происходит, когда пользователь выбирает некоторый текст внутри поля text или textarea. Обработчик событий onSelect выполняет программу JavaScript, когда происходит событие select. Синтаксис onSelect смотрите в описании соответствующих объектов. Обработчик событий: text, textarea Обработчик событий onSubmit Изменен в Navigator 3.0. Событие submit происходит, когда пользователь отправляет форму на Web-сервер. Обработчик событий onSubmit выполняет программу JavaScript, когда происходит событие submit. Вы можете использовать обработчик событий onSubmit для остановки передачи данных формы; для этого используется выражение return, которое возвращает false в обработчик событий. Любое другое возвращенное значение отправляет форму. Синтаксис onSubmit смотрите в описании соответствующих объектов. Обработчик событий: form Смотрите также: объект submit метод submit Обработчик событий onUnload Событие unload происходит, когда вы выходите из документа. Обработчик событий onUnload выполняет программу JavaScript, когда происходит событие unload. Обработчик событий onLoad используется внутри тагов <BODY> или <FRAMESET>, например, <BODY onUnload="...">. В отношении <FRAMESET> и <FRAME> событие onUnload, размещенное внутри фрейма в таге <BODY>, происходит перед событием onUnload, размещенного внутри <FRAMESET> в таге <FRAMESET>. Обработчик событий: window Смотрите также: обработчик событий onLoad 6. Работа с окнами и фреймами
window.opener= new_window
Первый пример переназначает для текущего окна окно-предшественник, в то
время как второй вообще защищает предшественника от каких-либо действий.
Все, что было сказано об окнах, распространяется и на фреймы, которые являются
просто частным случаем окна. При работе с фреймами часто фрейм может быть
порожден путем разбиения другого фрейма на части. Если при этом потребуется
обратиться к окну-предшественнику фрейма-предшественника, то свойство opener
в этом случае незаменимо. Разработчики языка следуют за пожеланиями авторов
Websit'ов и практикой применения JavaScrip, которая на начальной стадии
разработки языка не была столь очевидной. Кроме обращения к различным свойствам
окон и фреймов разработчики расширили действие методов blur и focus с фреймов
до окон. Теперь не только фрейм, но и окно может быть сделано текущем с
использованием метода focus или, наоборот, переведено в фон при помощи метода
blur. В ряде случаев, при порождении нескольких страниц, например, обращение
к этим функциям бывает довольно полезным.
window.opener = null Объекты Наталия Бельтикова, Ирина Кузина (РНЦ "Курчатовский институт") index целое число, представляющее якорь в документе. Определение кнопки: buttonName значение атрибута NAME объекта button. TYPE="checkbox"
NAME="checkboxName" VALUE="checkboxValue" [CHECKED] [onClick="handlerText"]> textToDisplay NAME="checkboxName" определяет имя объекта checkbox. Вы можете получить это значение, используя свойство name. VALUE="checkboxValue" определяет значение, которое посылается серверу при выборе checkbox и отправке формы. По умолчанию это "on". Вы можете получить это значение, используя свойство value. CHECKED определяет checkbox, отображаемый помеченным галочкой. Вы можете получить это значение, используя свойство defaultChecked. textToDisplay определяет текст, отображаемый рядом с checkbox. Использование свойств и методов объекта checkbox: checkboxName.propertyName checkboxName.methodName(parameters) formName.elements[index].propertyName formName.elements[index].methodName(parameters) checkboxName значение атрибута NAME объекта checkbox. dateObjectName = new Date(year, month, day)
dateObjectName = new Date(year, month, day, hours, minutes, seconds) dateObjectName любое имя нового объекта или свойство существующего объекта. <BODY
BACKGROUND="backgroundImage" BGCOLOR="backgroundColor" TEXT="foregroundColor" LINK="unfollowedLinkColor" ALINK="activatedLinkColor" VLINK="followedLinkColor" [onLoad="handlerText"] [onUnload="handlerText"]> </BODY> BACKGROUND определяет картинку, которая выполняет роль фона документа. propertyName одно из свойств, описанных ниже. HTML документ состоит из тагов <HEAD> и <BODY>. <HEAD>
содержит информацию о заголовке документа и основании (абсолютный URL основания,
используемый для относительных URL ссылок в документе). Таг <BODY>
заключает в себе тело документа, который определен текущим URL. Все тело
документа (все другие элементы HTML документа) находятся внутри тага <BODY>. Следующие объекты также являются свойствами объекта document: formName любое имя формы или элемента в массиве forms. <FORM
NAME="formName" определяет имя объекта form.NAME="formName" TARGET="windowName" ACTION="serverURL" METHOD=GET | POST ENCTYPE="encodingType" [onSubmit="handlerText"]> </FORM> TARGET="windowName" определяет окно, в которое загружается результат передачи формы. Когда вы используете форму с атрибутом TARGET, сервер показывает ответы в окне windowName вместо окна, содержащего форму. windowName может быть существующим окном, именем фрейма, определенного в таге <FRAMESET> или одним из имен фрейма _top, _parent, _self или _blank; оно не может быть выражением JavaScript (например, parent.frameName или windowName.frameName). Некоторые значения для этого атрибута могут требовать определенных значений для других атрибутов. Смотрите RFC 1867. Вы можете получить это значение, используя свойство target. ACTION="serverURL" определяет URL сервера, для которого поле формы вводит информацию is sent. Этот атрибут может указывать приложения CGI или LiveWire на сервере, это может также быть mailto: URL если форма отправляет почту. Смотрите объект location, где описаны компоненты URL. Некоторые значения для этого атрибута могут требовать определенных значений для других атрибутов. Смотрите RFC 1867. Вы можете получить это значение, используя свойство action. METHOD=GET | POST определяет метод передачи информации серверу, определенному ACTION. GET (по умолчанию) добавляет введенную информацию к URL, которая в большинстве принимающих систем становится значением переменной окружения QUERY_STRING. POST отправляет вводимую информацию в теле данных, которое является доступным на stdin с длинной данных в переменной окружения CONTENT_LENGTH. Некоторые значения для этого атрибута могут требовать определенных значений для других атрибутов. Смотрите RFC 1867. Вы можете получить это значение, используя свойство method. ENCTYPE="encodingType" определяет MIME кодировку данных, установленную: "application/x-www-forum-urlencoded" (по умолчанию) или "multipart/form-data". Некоторые значения для этого атрибута могут требовать определенных значений для других атрибутов. Смотрите RFC 1867. Вы можете получить это значение, используя свойство encoding. Использование свойств и методов объекта form: formName.propertyName
formName.methodName(parameters) forms[index].propertyName forms[index].methodName(parameters) formName значение атрибута NAME объекта form. Вы можете ссылаться на формы в вашей программе, используя массив forms
(вы можете также использовать имя формы). Этот массив содержит запись для
каждого объекта form (тага <FORM>) по порядку встречаемости в документе.
Например, если документ содержит три формы, то эти формы представлены так
document.forms[0], document.forms[1] и document.forms[2]. document.forms[index]
index целое число, представляющее форму в документе.document.forms.length Для получения количества форм в документе используется свойство length: document.forms.length. Вы можете также обращаться к элементам формы, используя массив forms. Например, вы обращаетесь к объекту text с именем quantity во второй форме так: document.forms[1].quantity .Элементы массива forms открыты только для чтения. Например, выражение document.forms[0]="music" не имеет эффекта. Значение каждого элемента в массиве forms является <object nameAttribute>, где nameAttribute является атрибутом NAME формы. Свойства: Объект form имеет следующие свойства: action отражает атрибут ACTION elements массив, отражающий все элементы в форме encoding отражает атрибут ENCTYPE length отражает количество элементов в форме method отражает атрибут METHOD target отражает атрибут TARGET Следующие объекты являются также свойствами объекта form: Массив forms имеет следующие свойства: <FRAMESET
ROWS="rowHeightList" через запятую указывается набор значений,
определяющих высоту фрейма. Можно определить единицу измерения, по умолчанию
это пиксели.ROWS="rowHeightList" COLS="columnWidthList" [onLoad="handlerText"] [onUnload="handlerText"]> [<FRAME SRC="locationorURL" NAME="frameName">] </FRAMESET> COLS="columnWidthList" через запятую указывается набор значений, определяющих ширину фрейма. Можно определить единицу измерения, по умолчанию это пиксели. <FRAME> определяет фрейм SRC="locationorURL" определяет URL документа, показываемого во фрейме. URL не может включать имя якоря, например, <FRAME SRC="doc2.html#colors" NAME="frame2" - это не правильно. Смотрите объект location, где описаны компоненты URL. NAME="frameName" определяет имя, используемое как ссылка для перехода по гиперссылкам. Использование свойств объекта frame: [windowReference.]frameName.propertyName
windowReference переменная windowVar из определения окна (смотрите объект
window) или один из синонимов top или parent.[windowReference.]frames[index].propertyName window.propertyName self.propertyName parent.propertyName frameName значение атрибута NAME в таге <FRAME> объекта frame. index целое число, представляющее объект frame. propertyName одно из свойств, описанных ниже. Свойство: Объект frame является свойством window Массив frames является свойством frame и window Описание: Таг <FRAMESET> используется в HTML документе, единственная его цель - определить расположение фреймов, составляющих страницу. Каждый фрейм является объектом window. Если таг <FRAME> содержит атрибуты SRC и NAME, вы можете ссылаться на этот фрейм из фрейма, находящегося на том же уровне иерархии, используя parent.frameName или parent.frames[index]. Например, если четвертый фрейм в установке имеет NAME="homeFrame", то фреймы, находящиеся на том же уровне иерархии, могут ссылаться на этот фрейм, используя parent.homeFrame или parent.frames[3]. Свойства self и window являются синонимами для текущего фрейма, вы можете использовать их для ссылок в текущем фрейме. Свойства top и parent являются также синонимами, которые могут использоваться вместо имени фрейма. top ссылается на самое верхнее окно, содержащее фреймы или nested framesets, и parent ссылается на окно, содержащее текущий frameset. Смотрите свойства top и parent. Массив frames Вы можете ссылаться на объекты frame в вашей программе, используя массив frames. Этот массив содержит запись для каждого фрейма-потомка (тага <FRAME>) в окне, содержащем таг <FRAMESET> по порядку встречаемости. Например, если окно содержит три фрейма-потомка, эти фреймы отображаются как parent.frames[0], parent.frames[1], parent.frames[2]. Использование массива frames: [frameReference.]frames[index]
frameReference действительный путь ссылки на фрейм, описанный в объекте
frame.[frameReference.]frames.length [windowReference.]frames[index] [windowReference.]frames.length windowReference переменная windowVar из определения окна (смотрите объект window) или один из синонимов top или parent. index целое число, представляющее количество фреймов в родительском окне. Для получения количества фреймов-потомков в окне или фрейме используется свойство length: [windowReference.]frames.length
Элементы в массиве frames открыты только для чтения. Например, выражение
[windowReference.]frames[0]="frame1" не имеет эффекта.[frameReference.]frames.length Значение каждого элемента в массиве frames является <object nameAttribute>, nameAttribute является атрибутом NAME фрейма. Свойства: Объект frame имеет следующие свойства: frames массив, отражающий все фреймы окна name отражает атрибут NAME тага <FRAME> length отражает количество фреймов-потомков внутри фрейма parent синоним для окна или фрейма, содержащего текущий фрейм self синоним для текущего фрейма window синоним для текущего фрейма Массив frames имеет следующие свойства: <INPUT
NAME="hiddenName" определяет имя объекта hidden. Вы можете получить
это значение, используя свойство name.TYPE="hidden" NAME="hiddenName" [VALUE="textValue"]> VALUE="textValue" определяет начальное значение объекта hidden. Использование свойств объекта hidden: hiddenName.propertyName
hiddenName значение атрибута NAME объекта hidden.formName.elements.[index].propertyName formName любое значение атрибута NAME объекта form или элемента массива forms. index целое число, представляющее объект hidden в форме. propertyName одно из свойств, описанных ниже. Свойство: form Описание: Объект hidden является элементом формы и должен быть определен внутри тага <FORM>. Объект hidden не может быть увиден и изменен пользователем, но вы можете запрограммировать изменение значения объекта, изменяя свойство value. Вы можете использовать объекты hidden для коммуникаций клиент/сервер. Свойства: name отражает атрибут NAME value отражает текущее значение объекта hidden Методы: нет События: нет Смотрите также: свойство cookie Объект history Содержит информацию о URL'ях, которые клиент посещал внутри окна. Эта информация сохраняется и доступна через меню Go Navigator'а. Синтаксис: Использование объекта history: <A HREF=locationorURL
A HREF=locationorURL идентифицирует место назначение якоря или URL. Смотрите
объект location, где описаны компоненты URL.[NAME="anchorName"] [TARGET="windowName"] [onClick="handlerText"] [onMouseOver="handlerText"]> linkText </A> NAME="anchorName" определяет таг, который становиться доступной гипертекстовой ссылкой внутри текущего документа. Если этот атрибут представлен, объект link является также объектом anchor. Смотрите anchor. TARGET="windowName" определяет окно, в которое загружается обозначенный ссылкой документ. windowName может быть существующим окном, это также может быть имя фрейма, определенного в таге <FRAMESET>, или одно из literal имен фреймов _top, _parent, _self или _blank, это не может быть выражением JavaScript (например, это не может быть parent.frameName или windowName.frameName). linkText отображается как гипертекстовая ссылка на URL. Вы можете также определить ссылку, используя метод link. Использование свойств объекта link: document.links[index].propertyName
index целое число, отражающее объект link.propertyName одно из свойств, описанных ниже. Свойство: document Описание: Каждый объект link является объектом location и имеет те же свойства как и объект location. Если объект link также является объектом anchor, то объект записан в массивах anchors и links. Когда пользователь выбирает объект link и переходит в документ, обозначенный ссылкой (определенный HREF=locationorURL), то этот документ содержит URL документа источника. Массив links Вы можете ссылаться на объекты link в вашей программе, используя массив links. Этот массив содержит запись для каждого объекта link (тага <A HREF="">) по порядку встречаемости в документе. Например, если документ содержит три объекта link, то эти ссылки представлены так document.links[0], document.links[1] и document.links[2].
Использование массива links: document.links[index]
index целое число, представляющее ссылку в документе.document.links.length Для получения количества ссылок в документе используется свойство length: document.links.length. Элементы в массиве links открыты только для чтения. Например, выражение document.links[0]="link1" не имеет эффекта. Свойства: Объект link имеет следующие свойства: hash определяет имя якоря в URL host определяет hostname:port часть URL'а hostname определяет хост и доменное имя или IP адрес сетевого хоста href определяет запись URL pathname определяет url-path часть URL'а port определяет коммуникационный порт, который сервер использует для коммуникаций protocol определяет начало URL, включая двоеточие search определяет запрос target отражает атрибут TARGET Массив links имеет следующие свойства: [windowReference.]location[.propertyName]
windowReference переменная windowVar из определения окна (смотрите объект
window) или один из синонимов top или parent.propertyName одно из свойств, описанных ниже. Пропуск имени свойства является равносильным определению свойства href (полный URL). Свойство: window Описание: Объект location представляет собой полный URL. Каждое свойство объекта location представляет собой отдельную часть URL. Следующий формат URL показывает связь между location свойствами: protocol//hostname:port pathname search hash protocol представляет собой начало URL, включая первое двоеточие. hostname представляет хост и доменное имя или IP адрес сетевого хоста. port представляет коммуникационный порт, который сервер использует для коммуникаций. pathname представляет url-path часть URL'а. search представляет любой запрос в URL'е, начинающийся со знака вопроса. hash представляет имя якоря фрагмент в URL'е, начинающийся со знака #. Смотрите описание свойств ниже, где более детально описаны различные части URL, или свойство href. Объект location имеет еще два свойства, не показанных в формате: href представляет полный URL. host представляет набор hostname:port. Объект location содержится в объекте window. Если вы ссылаетесь на объект location без определения окна, то объект location представляется как текущий location. Если вы ссылаетесь на объект location и определяете имя окна, например, windowReference.location.propertyName, то объект location представляется как location определенного окна. Не путайте объект location со свойством location объекта document. Вы не можете изменить значение свойства location (document.location), но вы можете изменить значение свойств объекта location (window.location.propertyName). document.location является строковым значением, которое обычно равно window.location.href, который устанавливается когда вы загружаете документ, но перенаправление может изменить его. Синтаксис для общеизвестных типов URL: URL type Protocol Example
javascript:protocol оценивает выражение после двоеточия (:), если оно есть,
и загружает страницу, содержащую строковое значение выражения, если оно
не определено. Если выражение не определено, то новая страница не загружается.JavaScript javascript: javascript:history.go(-1) Navigator info about: about:cache Word Wide Web http: http://www.netscape.com/ File file: file:///javascript/methods.html FTP ftp: ftp://ftp.mine.com/home/mine MailTo mailto: mailto:info@netscape.com Usenet news: news://news.scruznet.com/comp.la ng.javascript Gopher gopher: gopher.myhost.com about:protocol обеспечивает информацией Navigator и имеет следующий синтаксис: about:[cache|plugins] about: является равносильным выбору About Netscape из Help меню Navigator'а. Math.propertyName
Math.methodName(parameters) propertyName одно из свойств, описанных ниже. with (Math) {
Свойства:a = PI*r*r y = r*sin(theta) x = r*cos(theta) } E LN2 LN10 LOG2E LOG10E PI SQRT1_2 SQRT2 Методы: abs acos asin atan ceil cos exp floor log max min pow random round sin sqrt tan События: нет. Встроенные объекты не имеют событий. Объект navigator Изменен в Navigator 3.0. Содержит информацию о используемой версии Navigator'а. Синтаксис: Использование объекта navigator: navigator.propertyName
propertyName одно из свойств, описанных ниже. <INPUT
NAME="passwordName" определяет имя объекта password. Вы можете
получить это значение, используя свойство name.TYPE="password" NAME="passwordName" [VALUE="textValue"] SIZE=integer> VALUE="textValue" определяет первоначальное значение объекта password. Вы можете получить это значение, используя свойство defaultValue. SIZE=integer определяет количество символов объекта password, вмещающихся без прокрутки. Использование свойств и методов объекта password: passwordName.propertyName
passwordName значение атрибута NAME объекта password.passwordName.methodName formName.elements[index].propertyName formName.elements[index].methodName(patameters) formName любое значение атрибута NAME объекта form или элемента в массиве forms. index целое число, представляющее объект password в форме. propertyName одно из свойств, описанных ниже. methodName один из методов, описанных ниже. Свойство: form Описание: Объект password в форме выглядит следующим образом: Объект password является элементом формы и должен быть определен внутри тага <FORM>. Свойства: defaultValue отражает атрибут VALUE name отражает атрибут NAME value отражает текущее значение поля объекта password Методы: focus blur select События: нет Смотрите также: объекты form и text Объект radio Изменен в Navigator 3.0. Установка статических кнопок (кнопок radio) в HTML форме. Установка кнопок radio позволяет пользователю выбрать один пункт из списка. Синтаксис: Для определения установки кнопок radio используется стандартный HTML синтаксис с добавлением события onClick: <INPUT
NAME="radioName" определяет имя объекта radio. Все кнопки radio
в группе имеют одинаковый атрибут NAME. Вы можете получить это значение,
используя свойство name.TYPE="radio" NAME="radioName" VALUE="buttonValue" [CHECKED] [onClick="handlerText"]> textToDisplay VALUE="buttonValue" определяет значение, которое возвращается серверу, когда radio кнопка выбирается и форма утверждается. По умолчанию это "нет". Вы можете получить это значение, используя свойство value. CHECKED определяет, что кнопка radio выбрана. Вы можете получить это значение, используя свойство defaultChecked. textToDisplay определяет текст, отображаемый рядом с кнопкой radio. Использование свойств и методов объекта radio: radioName[index1].propertyName
radioName значение атрибута NAME объекта radio.radioName[index1].methodName(parameters) formName.elements[index2].propertyName formName.elements[index2].methodName(parameters) index1 целое число, представляющее кнопку radio в объекте radio. formName любое значение атрибута NAME объекта form или элемента в массиве forms. index2 целое число, представляющее кнопку radio в форму. Массив elements содержит записи для каждой кнопке radio в объекте radio. propertyName одно из свойств, описанных ниже. methodName(parameters) один из методов, описанных ниже. Свойство: нет Описание: Объект radio в форме выглядит следующим образом: Объект radio является элементом формы и должен быть определен внутри тага <FORM>. Все кнопки radio в группе кнопок radio используют одинаковое свойство name. Для обращения к отдельным кнопкам radio в вашей программе, используйте имя объекта с индексом, начинающимся с нуля, для каждой кнопки, также как вы это делали для массива, forms: document.forms[0].radioName[0] это первая, document.forms[0].radioName[1] это вторая и так далее. Свойства: checked позволяет вам программно выбирать кнопку radio defaultChecked отражает атрибут CHECKED length отражает количество кнопок radio в объекте radio name отражает атрибут NAME value отражает атрибут VALUE Методы: click События: onClick Смотрите также: объекты checkbox, form и select Объект reset Изменен в Navigator 3.0. Кнопка сброса (кнопка reset)в HTML форме. Кнопка reset сбрасывает все элементы в форме в их значения, установленные по умолчанию. Синтаксис: Для определение кнопки reset используется стандартный HTML синтаксис с добавлением события onClick: <INPUT
NAME="resetName" определяет имя объекта reset. Вы можете получить
это значение, используя свойство name.TYPE="reset" NAME="resetName" VALUE="buttonText" [onClick="handlerText"] VALUE="buttonText" определяет текст, отображаемый на кнопке. Вы можете получить это значение, используя свойство value. Использование свойств и методов объекта reset: resetName.propertyName
resetName значение атрибута NAME объекта reset.resetName.methodName(parameters) formName.elements[index].propertyName formName.elements[index].methodName(parameters) formName любое значение атрибута NAME объекта form или элемента в массиве forms. index целое число, представляющее объект reset в форме. propertyName одно из свойств, описанных ниже. methodName один из методов, описанных ниже. Свойство: form Описание: Объект reset в форме выглядит следующим образом: Объект reset является элементом формы и должен быть описан внутри тага <FORM>. Событие onClick кнопки reset не может предотвратить сброса формы; если вы нажали кнопку, сброс не может быть отменен. Свойства: name отражает атрибут NAME value отражает атрибут VALUE Методы: click События: onClick Объект string Изменен в Navigator 3.0. Ряд символов. Синтаксис: Использование объекта string: stringName.propertyName
stringName имя строковой переменной.stringName.methodName(parameters) propertyName одно из свойств, описанных ниже. methodName один из методов, описанных ниже. Свойство: нет Описание: Объект string является встроенным объектом JavaScript. Строка может быть представлена как литерал, заключенный в одинарные или двойные кавычки; например, "Netscape" или 'Netscape'. Свойства: length определяет длину ряда Методы: anchor big blink bold charAt fixed fontcolor fontsize indexOf italics lastIntexOf link small strike sub substring sup toLowerCase toUpperCase События: нет. Встроенные объекты не имеют событий. Смотрите также: объекты text и textarea Объект submit Изменен в Navigator 3.0. Кнопка передачи данных (кнопка submit) в HTML форме. Кнопка submit вызывает передачу формы. Синтаксис: Для определения кнопки submit используется стандартный HTML синтаксис с добавлением события onClick: <INPUT
NAME="submitName" определяет имя объекта submit. Вы можете получить
это значение, используя свойство name.TYPE="submit" NAME="submitName" VALUE="buttonText" [onClick="handlerText"]> VALUE="buttonText" определяет текст, отображаемый на кнопке. Вы можете получить это значение, используя свойство value. Использование свойств и методов объекта submit: sibmitName.propertyName
submitName.methodName(parameters) formName.elements[index].propertyName formName.elements[index].methodName(parameters) sibmitName значение атрибута NAME объекта submit. <INPUT
NAME="textName" определяет имя объекта text. Вы можете получить
это значение, используя свойство name.TYPE="text" NAME="textName" VALUE="textValue" SIZE=integer [onBlur="handlerText"] [onChange="handlerText"] [onFocus="handlerText"] [onSelect="handlerText"]> VALUE="textValue" определяет первоначальное значение объекта text. Вы можете получить это значение, используя свойство value. SIZE=integer определяет количество символов объекта text, помещающихся без прокрутки. Использование свойств и методов объекта text: textName.propertyName
textName.methodName(parameters) formName.elements[index].propertyName formName.elements[index].methodName(parameters) textName значение атрибута NAME объекта text. <TEXTAREA
NAME="textareaName" определяет имя объекта textarea. Вы можете
получить это значение, используя свойство name.NAME="textareaName" ROWS="integer" COLS="integer" WRAP="off|virtual|physical" [onBlur="handlerText"] [onChange="handlerText"] [onFocus="handlerText"] [onSelect="handlerText"]> textToDisplay </TAXTAREA> ROWS="integer" и COLS="integer" устанавливает размер в символах отображаемого поля вода. textToDisplay определяет первоначальное значение объекта textarea. textarea всегда только ASCII текст с разделением на строки. Атрибут WRAP контролирует длину обрабатываемых строк в TEXTAREA. Значение "off" установлено по умолчанию - строки посылаются так, как они введены. Значение "virtual" отображает строки с переносами, но они посылаются так, как введены. Значение "physical" отображает строки с переносами и посылаются они с установленными переносами. Использование свойств и методов textarea: textareaName.propertyName
textareaName значение атрибута NAME объекта textarea.textareaName.methodName(property) formName.elements[index].propertyName formName.elements[index].methodName(parameters) formName значение атрибута NAME объекта form или элемента в массиве forms. index целое число, представляющее объект textarea в форме. propertyName одно из свойств, описанных ниже. methodName один из методов, описанных ниже. Свойство: form Описание: Объект textarea в форме выглядит следующим образом: Объект textarea является элементом формы и должен быть определен внутри тага <FORM>. Для начала новой строки в объекте textare вы можете использовать символ новой строки. Этот символ различен для разных платформ: в Unix - это \n, Windows - \r\n, Macintosh - \n. Одним из способов ввода символа новой строки программно является тестирование свойством appVersion для определения текущей платформы и установки символа новой строки таким образом. Смотрите примеры свойства appVersion. Свойства: defaultValue отражает атрибут VALUE. name отражает атрибут NAME. value отражает текущее значение объекта textarea. Методы: blur focus select События: onBlur onChange onFocus onSelect Смотрите также: объекты form, password, string и text. Объект window Изменен в Navigator 3.0. Объект верхнего уровня для групп объектов document, location и history. Синтаксис: Для определения окна используется метод open: windowVar = window.open("URL", "windowName" [,"windowFeatures"])
windowVar имя нового окна. Эта переменная используется при ссылках на свойства,
методы и контейнеры окна.windowName имя окна, используемое в атрибуте TARGET тагов <FORM> и <A>. Более подробное определение окна смотрите в методе open. Использование свойств и методов window: window.propertyName
windowVar переменная, ссылающаяся на обект window. Смотрите синтаксис определения
окна.window.methodName(parameters) self.propertyName self.methodName(parameters) top.propertyName top.methodName(parameters) parent.propertyName parent.methodName(parameters) windowVar.propertyName windowVar.methodName(parameters) propertyName methodName(parameters) propertyName одно из свойств, описаныых ниже. methodName один из методов, описанных ниже. Для определения событий onLoad и onUnload для объекта window используются таги <BODY> и <FRAMESET>: <BODY
... [onLoad="handlerText"] [onUnload="handlerText"]> </BODY> <FRAMESET ROWS="rowHeightList" COLS="columnWidthList" [onLoad="handlerText"] [onUnload="handlerText"] [<FRAME SRC="locationorURL" NAME="frameName"]> </FRAMESET> Информацию о тагах <FRAMESET> и <BODY> смотрите в объектах
document и frame. Следующие объекты являются также свойствами объекта window: Определение типа и версии броузера Как известно, броузеры отличаются широтой толкования стандартов HTML. Один
и тот же код в каждом из броузеров проявляется несколько по-разному. Чтобы
получить одинаковый результат иногда требуется писать разный код - для каждого
броузера свой. И, разумеется, функция, которая бы сообщала нам о том, подходит
броузер для отображения странички в полном объеме или нужно ограничиться
урезанной версией, была бы как нельзя кстати. var browser_ok = false;
Разумеется, условие может быть и более сложным, в зависимости от того, какие
цели Вы преследуете. Кроме проверки типа и версии броузера мы можем также
узнать количество используемых цветов, ширину и высоту экрана, возможность
поддержки определенных плагинов и другие не менее полезные вещи, а значит,
и скорректировать поведение скрипта. Можно завести более одного флажка,
если мы собираемся писать разный код для разных броузеров. В данном конкретном
случае мы просто выполнили проверку броузера на соответствие 4-ой версии.
Это было сделано с целью безболезненного отсечения старых версий броузеров
(чтобы они не показывали ошибку при обращении к страничке) и для проверки
возможности использования DHTML. if (browser_name == "Netscape" && browser_version >= 4.0) browser_ok = 'true'; else if (browser_name == "Microsoft Internet Explorer" && browser_version >= 4.0) browser_ok = 'true'; Итак, код проверки броузера и выставления флажка, сигнализирующего о том, что броузер нам подходит, мы написали. А теперь научимся этим пользоваться. Основное правило заключается в том, что весь зависимый от этого флажка код нужно предварять проверкой его значения: function somefunction() {
Таким образом, старые версии броузеров, которые не умеют работать с новыми
технологиями, просто не получат непонятный для себя код и, соответственно,
не сгенерируют ошибку. if (browser_ok == 'true') { // здесь и располагается зависимый код } } Генерация случайного числа Не столь уж и редкая ситуация, когда нам может понадобиться сгенерировать
случайное число. Это может пригодиться, например, для написания странички,
которая случайным образом показывает каждый раз новую картинку или афоризм
при заходе на сайт. Но это может быть и часть более сложной системы - например,
механизм локальной баннерной системы. var min_random = 0; max_random++; var range = max_random - min_random; return n; Дата модификации документа Некоторые web-дизайнеры находят полезным отображать внизу странички дату
последней модификации документа. Это делается для того, чтобы посетитель
мог определить, насколько часто обновляется сайт. Правда это же накладывает
и определенные обязательства по поддержке сайта. Согласитесь, что наблюдать
прошлогоднюю дату доставляет мало удовольствия. Но если Вы все же решились
использовать этот прием, то следующий скрипт Вам пригодится. <script language="JavaScript">
Как сделать страничку стартовой?
<!-- document.write ("Дата последней модификации: " //--> В последнее время стало достаточно модным применять этот скрипт. Его смысл
заключается в том, что где-нибудь на видном месте странички мы делаем ссылку,
нажав на которую пользователь сможет сделать Вашу страничку стартовой, т.е.
такой, которая загружается при запуске броузера и нажатии на кнопку "Домой".
<p><a href="#" onClick="this.style.behavior='url(#default#homepage)';
this.setHomePage('http://www.yoursite.com/'); return false;"> Сделать стартовой страницей</a></p> Добавление странички в "Избранное" Подобно предыдущему скрипту, этот прием также работает лишь под Internet
Explorer, но уже начиная с 4-ой версии. И точно такие же замечания по поводу
его уместности. <p><a href="#" onClick="window.external.addFavorite
Распечатка страницы из кода
('http://www.yoursite.com/', 'Description'); return false;"> Добавить сайт в Избранное</a></p> Иногда требуется распечатать страничку, причем сделать это нужно непосредственно
из кода. Сначала кажется, что это невозможно, но все не так плохо. На самом
деле в Netscape Navigator для этого есть, даже, встроенный механизм. Достаточно
просто вызвать метод window.print() <script language="JavaScript">
Осталось только вызвать этот код. Для этого, к примеру, можно воспользоваться
событием onClick: <!-- var browser_name = navigator.appName; function printit(){ if (browser_name == "Netscape") { //--> <a href="#" onClick="printit();">Распечатать статью</a> Только не путайте этот скрипт с версиями страничек "для распечатки". Страничка для распечатки это обычный html-файл, из которого убрали дизайнерское оформление и оставили очень простую верстку, чтобы при печати не было лишних элементов. Приведенный же выше код непосредственно посылает страничку на принтер. Открытие окон Вы можете создавать окно с помощью метода Window. Следующее утверждение создает окно "msgWindow", которое показывает содержание файл sesame.html: MsgWindow=window.open("sesame.html")
Следующее утверждение создает окно "homeWindow", которое показывает
домашнюю страницу Netscape: homeWindow=window.open("http://www.netscape.com") Окна могут иметь два названия. Следующее утверждение создает окно с двумя названиями. Название окна "msgWindow" - это вовсе не имя окна, но только с помощью этой переменной вы можете получить доступ к окну. И поскольку это обычная переменная, то область ее действия - лишь тот скрипт, в котором она определена; а между тем, имя окна, "displayWindow" - уникальный идентификатор, которым можно пользоваться с любого из окон браузера. msgWindow=window.open("sesame.html","displayWindow") Когда Вы создаете окно, имя окна не требуется. Но если Вы хотите обратиться к окну из другого окна, то окно должно иметь свое уникальное имя (в данном случае "displayWindow"). Приведенный далее скрипт открывает новое окно браузера и загружает в него страничку sesame.html с помощью метода open(): <html>
<head> <script language="JavaScript"> <!-- hide function openWin() { msgWindow= open("sesame.html") } // --> </script> </head> <body> <form> <input type="button" value="Открыть новое окно" onClick="openWin()"> </form> </body> </html> Заметим, что Вы имеете возможность управлять самим процессом создания окна.
Например, Вы можете указать, должно ли новое окно иметь строку статуса,
панель инструментов, меню или полосы прокрутки. Кроме того, Вы можете задать
размер окна. Рассмотрим следующий пример создания окна размерами 250x100
пикселов, которое не имеет ни строки статуса, ни панель инструментов, ни
меню, ни полосы прокрутки. <html>
<head> <script language="JavaScript"> <!-- hide function openWin() { msgWindow= open("sesame.html",displayWindow", "width=250,height=100,status=no, toolbar=no,menubar=no,scrollbars=no") } // --> </script> </head> <body> <form> <input type="button" value="Открыть новое окно" onClick="openWin()"> </form> </body> </html> Как видно в примере, свойства окна записаны в строке "width=250,height=100,status=no,toolbar=no,menubar=no,scrollbars=no",
в которой следует обратить внимание на то, что вам не следует помещать в
ней символы пробела. MsgWindow.close()
Теперь создадим пример, который открывает новое окно. Загрузим туда web-страницу,
где при нажатие кнопки оно будет закрыто: <html>
<script language="JavaScript"> <!-- hide function closeIt(){ close(); } // --> </script> <center> <form> <input type=button value="Закрыть окно" onClick="closeIt()"> </form> </center> </html> open() и close() - это методы объекта window. Мы должны помнить, что следует
писать не просто open() и close(), а window.open() и window.close(). Однако
в нашем случае объект window можно опустить - Вам нет необходимости писать
префикс window, если Вы хотите всего лишь вызвать один из методов этого
объекта (и такое возможно только для этого объекта). <html>
<frameset cols="50%,50%"> <frameset rows="50%,50%"> <frame src="cell.htm"> <frame src="cell.htm"> </frameset> <frameset rows="33%,33%,33%"> <frame src="cell.htm"> <frame src="cell.htm"> <frame src="cell.htm"> </frameset> </frameset> </html> Внутри тега <frameset> мы использовали свойства rows и cols. Это
означает, что фреймы будут расположены друг над другом или друг под друго
соответсвенно. Фрагмент "33%,33%,33%" задает размеры открываемых
окон. Этот фрагмент эквивалентен следующей записи "33%,33%,*"
или задать размер фрейма в пиксилах, для чего достаточно после числа не
ставить символ %. Любому фрейму можно присвоить уникальное имя, воспользовавшись
в тэге <frame> атрибутом name. Такая возможность пригодится нам в
языке JavaScript для доступа к фреймам. This frame is This frame is upperFrame - top.frames [0]
Модифицикация фреймовnavigateFrame - [1] top.frames listFrame - upperFrame.frames [0] или top.frames [0] .frames [0] contentFrame - upperFrame.frames [1] или top.frames [0] .frames [1] Вы можете модифицировать содержание фрейма, используя свойство location, пока вы точно определяете иерархию фреймов. Например, пусть вы используете frameset, описанный в Примере 2 в предыдущем примере. Если вы хотите, чтобы пользователь был способен закрывать фрейм, содержащий список artists (в фрейме listframe) и просматр только music titles, сортируемые musician (в настоящее время в фрейме contentFrame), вы можете добавить следующую кнопку к navigateFrame. Если Вы хотите, чтобы пользователь мог закрыть фрейм, содержащий список artists (в фрейме listframe) и просматривая только music titles, сортируемые musician (в настоящее время в фрейме contentFrame), вы можете добавить следующую кнопку к navigateFrame. Когда пользователь нажимает на эту кнопку, файл Artists.html загружается
в фрейм upperFrame; фреймы listFrame и contentFrame закрываются и больше
не существуют. if (self.document.musicForm.checkbox1.checked) {
alert('The checkbox on the musicForm is checked!')} Пример 2: обращение к другому окну. Следующие выражения обращаются к форме с именем musicForm в окне checkboxWin. Выражения определяют, если выбран переключатель, отмечает переключатель, определят, если выбрана вторая опция объекта selected, выбирает вторую опция объекта selected. Даже при том, что значения объекта изменены в checkboxWin, текущее окно остается активным: проверка переключателя и выбора опции отбора не дает фокус окну. // Определят выбран ли переключатель
if (checkboxWin.document.musicForm.checkbox2.checked) { alert('The checkbox on the musicForm in checkboxWin is checked!')} // Отмечает переключатель checkboxWin.document.musicForm.checkbox2.checked=true // Определяет, выбрана ли опция в объекте select if (checkboxWin.document.musicForm.musicTypes.options[1].selected) {alert('Option 1 is selected!')} // Выбирает опцию в объекте select checkboxWin.document.musicForm.musicTypes.selectedIndex=1 Пример 3: обращение к фрейму в другом окне. Следующее выражение обращается к фрейму с именем frame2, который находится в окне с именем window2. Выражение изменяет цвет фона frame2 в фиолетовый. Имя фрейма frame2, должно быть определено в теге <FRAMESET>, который создает frameset. Window2.frame2.document.bgColor = "violet"
|
,
,
и т.д.) размещаются во временной базе данных соответственно структуре объектной модели.
Разумеется, содержимое базы может быть изменено до вывода на экран, что и позволяет работать DHTML. Но объектная модель остается работать даже после того, как страничка показана на экране дисплея. Это дает нам возможность в небольших пределах (а в последних версиях HTML 4.0 практически полностью) менять содержимое странички после загрузки.
Структура объектной модели
Чтобы было понятно, о чем мы говорим, рассмотрим общую структуру объектной модели. Ниже приведена объектная модель Internet Explorer-а версии 4 и выше.
Объектная модель Netscape Navigator-а немного отличается от вышеприведенной, но ее смысл точно такой же. А использование JavaScript позволяет нам обойти различия в реализации объектных моделей.
Вместо того, чтобы подробно объяснять каждый объект, входящий в модель броузера, я буду разъяснять смысл соответствующих объектов, их свойств и методов на конкретных примерах по мере возникновения в том необходимости.
Как видите, структура объектной модели достаточно сложна, но строго определена, и существует однозначный способ доступа к любому свойству или методу. Синтаксис полностью соответствует тому, что используется в объектных языках. Т.е. нижележащие объекты отделяются от вышележащих точкой, и для доступа к конкретному свойству нужно просто корректно построить строку доступа.
И, как Вы понимаете, вот здесь-то на сцену и выходит скриптовый язык, который и позволяет нам манипулировать объектами.
Как любой язык программирования, JavaScript имеет определенный набор типов переменных, операторов, встроенных функций и объектов. Изучение JavaScript как такового как раз и заключаются в запоминании всего этого. Но, как Вы понимаете, оторванный от объектной модели, он мало полезен сам по себе. А потому я просто расскажу о популярных эффектах, применяемых на страничках, попутно давая пояснения. И надеюсь, что если это Вас заинтересует, то более сложные вещи Вы уже напишите сами.
Как и где размещать код скрипта?
Но сначала мы немного отвлечемся от эффектов и поговорим о том, как и где размещать JavaScript. Так как язык скриптовый и рассчитан на работу на web-страничках, то его код размещается непосредственно в HTML-коде странички. Причем, код на JavaScript обычно состоит из двух частей:
Описание функций должно располагаться в теге
- это гаран
Обратите внимание, что непосредственно сам код заключен в тег комментария. Это сделано для того, чтобы более старые броузеры игнорировали непонятные им команды. Новые же программы знают о существовании закомментированных скриптов и им это не мешает.
Заметьте также, что закрывающий тег комментария несколько необычен и предваряется двумя косыми чертами. Две косые черты - это комментарий языка JavaScript, т.е. скрипт игнорирует все, что идет после него. А сделана такая сложная конструкция ради совместимости с Netscape, который закрывающий HTML-комментарий воспринимает как непонятную ему команду и, соответственно, вызывает ошибку.
2. Использование массивов Массивы Первый тип новых объектов, которые мы рассмотрим, являются массивы. Тип "Array" введен в JavaScript 1.1 для возможности манипулирования самыми разными объектами, которые отображаются Navigator'ом. Это - список всех гипертекстовых ссылок данной страницы Website, список всех картинок на данной странице, список всех applet'ов данной страницы, список всех элементов формы и т.п. Пользователь может создать и свой собственный массив, используя конструктор Array(). Делается это следующим образом:
Размерность массива может динамически изменяться. Можно сначала определить массив, а потом присвоить одному из его элементов значение. Как только это значение будет присвоено, изменится и размерность массива:
В данном случае массив будет состоять из 6 элементов, т.к. первым элементом массива считается элемент с индексом 0. Для массивов определены три метода: join, reverse, sort. Join объединяет элементы массива в строку символов, в качестве аргумента в этом методе задается разделитель:
В результате выполнения присваивания значения строке символов string мы получим следующую строку:
Другой метод, reverse, изменяет порядок элементов массива на обратный, а метод sort отсортировывает их в порядке возрастания. У массивов есть два свойства: length и prototype. Length определяет число элементов массива. Если нужно выполнить некоторую рутинную операцию над всеми элементами массива, то можно воспользоваться циклом типа:
Свойство prototype позволяет добавить свойства к объектам массива. Однако наиболее часто, в программе на JavaScript используются встроенные массивы, главным образом графические образы (Images) и гипертекстовые ссылки (Links).
1. Введение в JavaScript. Понятие Объектной модели
1. Введение в JavaScript. Понятие Объектной модели
1. Введение в JavaScript. Понятие Объектной модели
1. Введение в JavaScript. Понятие Объектной модели
1. Введение в JavaScript. Понятие Объектной модели
1. Введение в JavaScript. Понятие Объектной модели
1. Введение в JavaScript. Понятие Объектной модели
далее >>>
Автор материалов
Василий Меленчук
| All materials © by
IATP/Belarus For additional info or suggestions, please, contact: maryia @ iatp. by |
| |