Если субобъект (document или layer) также захватывает событие, событие пересылается этому объекту. Иначе оно высылается оригинальному целевому объекту.
routeEvent работает вместе с captureEvents, releaseEvents и handleEvent. О событиях см. дополнительно книгу Клиентский JavaScript. Руководство.
Используйте свойство tags для специфицирования стиля HTML-тэгов. Например, Вы можете специфицировать, что цвет любого тэга H1 будет blue и что выравнивание тэгов H1 или H2 будет по центру. См. в объекте Style описание свойств, которые Вы можете специфицировать для тэгов HTML.
Поскольку все элементы HTML наследуют от тэга BODY, Вы можете специфицировать стиль по умолчанию документа, установив стили тэга BODY.
Если Вы используете свойство tags внутри тэга STYLE (а не внутри тэга SCRIPT), Вы можете по выбору опустить document в синтаксисе tags. Свойство tags всегда применяется к текущему объекту document.
Свойство title является отражением значения, специфицируемого между начальным и конечным тэгами TITLE. Если документ не имеет названия/title, свойство title будет null.
URL это свойство со строковым значением, содержащее полный URL документа. Оно обычно совпадает с тем, что установлено в свойстве window.location.href при загрузке документа, но перенаправление может изменить location.href.
Свойство vlinkColor выражается как 16-ричный RGB-триплет или как строковой литерал (см. книгу Клиентский JavaScript. Руководство). это свойство является отражением в JavaScript атрибута VLINK тэга BODY. Значение по умолчанию этого свойства устанавливается пользователем в диалоге настроек браузера. Вы не можете установить это свойство после того как исходный HTML отображён.
Если цвет выражается как 16-ричный триплет RGB, Вы обязаны использовать формат rrggbb. Например, 16-ричные RGB-значения для цвета salmon будут red=FA, green=80 и blue=72, так что RGB-триплет для salmon будет "FA8072".
Метод write отображает любое количество выражений в документе окна. Вы можете специфицировать любое выражение JavaScript методом write, включая числовые, строки или логические выражения.
Метод write это такой же метод, что и writeln, за исключением того, что метод write не присоединяет символ новой строки в конец вывода.
Используйте метод write внутри тэгов SCRIPT или в обработчиках событий. Обработчики событий выполняются после закрытия оригинального документа, поэтому метод write неявно открывает новый документ с типом mimeType text/html, если Вы не вызываете явно метод document.open в обработчике события.
Можно использовать метод write для генерации HTML и кода JavaScript. Однако разборщик HTML читает генерируемый код так, как он написан, поэтому Вам может понадобиться использовать escape-кодирование некоторых символов. Например, следующий метод write генерирует комментарий и записывает его в окно window2:
window2=window.open('','window2')Печать, сохранение и просмотр сгенерированного HTML. В браузере Navigator 3.0 и позже пользователи могут печатать и сохранять генерируемый HTML, используя команды из меню File.
Если Вы используете Page Source из меню View в Navigator или View Frame Source после щелчка правой кнопкой мыши и открытия дополнительного меню, web-браузер отображает содержимое HTML-файла со сгенерированным HTML.
Если Вам нужно просмотреть исходный код HTML с кодом скриптов, генерирующих HTML (методами document.write и document.writeln), не используйте пункты меню Page Source или View Frame Source. Здесь нужно ввести view-source: протокол.
Например, предположим, что файл file://c|/test.html содержит такой текст:
<HTML>Если загрузить этот URL в web-браузер, он отобразит:
Hello, there.Если выбрать View Document Source, браузер отобразит:
<HTML>Если загрузить view-source:file://c|/test.html, браузер отобразит:
<HTML>О специфицировании view-source: protocol в объекте location см. объект Location.
Метод writeln выводит любое количество выражений в документ окна. Вы можете специфицировать любое выражение JavaScript, включая числа, строки или логические выражения.
Метод writeln это тот же метод, что и write, за исключением того, что метод writeln присоединяет символы новой строки в конец вывода. HTML игнорирует символы новой строки, за исключением некоторых тэгов, таких как PRE.
Используйте метод writeln внутри тэгов SCRIPT или в обработчике событий. Обработчики событий выполняются после закрытия оригинального документа, поэтому метод writeln будет неявно открывать новый документ типа mimeType text/html, если Вы не вызываете явно метод document.open в обработчике события.
В Navigator 3.0 и позднее пользователи могут печатать и сохранять сгенерированный HTML, используя команды меню File браузера.
Объект FileUpload на форме выглядит так:
Объект FileUpload это элемент формы и обязан быть определён внутри тэга FORM.
Каждый элемент формы имеет свойство form, которое является ссылкой на родительскую форму элемента. Это свойство используется в обработчиках событий, где Вам может понадобиться обратиться к другому элементу текущей формы.
Свойство name первоначально отражает значение атрибута NAME. Свойство name не отображается на экране; оно используется для обращения к объектам программно.
Если несколько объектов на одной форме имеют одинаковые значения атрибута NAME, автоматически создаётся массив с данным именем. Каждый элемент этого массива представляет отдельный объект формы. Элементы индексируются в порядке расположения в исходном коде, начиная с 0. Например, если два элемента Text и элемент FileUpload на одной форме имеют значения атрибута NAME "myField", создаётся массив из элементов myField[0], myField[1] и myField[2]. Вы должны знать об этой ситуации и о том, ссылается myField на единственный элемент или на массив элементов.
Используйте метод select для выделения области ввода поля загрузки файла. Вы можете использовать метод select с методом focus для выделения поля и позиционирования курсора и замены всего текста поля.
Каждая форма в документе является отдельным объектом. Вы можете обратиться к элементам формы в Вашем коде с помощью имени элемента (из атрибута NAME) или в массиве Form.elements. Массив elements содержит вхождение для каждого элемента (такого как объекты Checkbox, Radio или Text) формы.
Если несколько объектов на одной форме имеют одинаковые значения атрибута NAME, массив с данным именем создаётся автоматически. Каждый элемент этого массива представляет отдельный объект Form. Элементы индексируются в порядке расположения в исходном коде, начиная с 0. Например, если два элемента Text и элемент Textarea на одной форме имеют атрибуты NAME, установленные в "myField", создаётся массив из элементов myField[0], myField[1] и myField[2]. Вы должны знать о такой ситуации в Вашем коде и знать, ссылается ли myField на единственный элемент или на массив элементов.
Свойство action является отражением атрибута ACTION тэга FORM. Каждый раздел URL содержит свою информацию. См. в Location описание компонентов URL.
Вы можете обратиться к элементам формы в коде путём использования массива elements. Этот массив содержит вхождение для каждого объекта (Button, Checkbox, FileUpload, Hidden, Password, Radio, Reset, Select, Submit, Text или Textarea) формы в порядке расположения в исходном коде. Каждая радио-кнопка в объекте Radio появляется как отдельный элемент массива elements. Например, если форма myForm содержит текстовое поле и два переключателя, Вы можете обратиться к этим элементам как myForm.elements[0], myForm.elements[1] и myForm.elements[2].
Хотя Вы можете также обратиться к элементам формы по их именам (их атрибута NAME), массив elements предоставляет способ для обращения к объектам Form программно без использования их имён. Например, если первый объект формы userInfo является Text-объектом userName, Вы можете вычислить его одним из следующих способов:
userInfo.userName.valueЗначение каждого элемента в массиве elements будет полным оператором HTML для этого объекта.
Для получения количества элементов формы используйте свойство length: myForm.elements.length.
Свойство encoding первоначально отражает атрибут ENCTYPE тэга FORM; однако установка свойства encoding переопределяет атрибут ENCTYPE.
Свойство form.length сообщает, сколько элементов имеется в форме. Вы можете получить ту же самую информацию с помощью form.elements.length.
Свойство method является отражением атрибута METHOD тэга FORM. Свойство method должно вычисляться в "get" или "post".
Свойство name первоначально отражает значение атрибута NAME. Изменение свойства name переопределяет эту установку.
Метод reset восстанавливает значения по умолчанию элементов формы. Кнопка reset не обязательно должна быть определена в форме.
Метод submit отправляет специфицированную форму. Он выполняет те же действия, что и кнопка submit.
Используйте метод submit для отправки данных обратно на HTTP-сервер. Метод submit возвращает данные с использованием метода get" или "post," как специфицировано в Form.method.
Свойство target первоначально отражает атрибут TARGET тэгов A, AREA и FORM; однако установка target переопределяет этот атрибут.
Вы можете установить target путём использования строки, если эта строка содержит имя окна. Свойству target не может быть присвоено значение выражения или переменной JavaScript.
Function-объекты, созданные конструктором Function, вычисляются каждый раз при их использовании. Это менее эффективно, чем объявление функции и вызов её внутри Вашего кода, поскольку объявленные функции компилируются.
Чтобы возвращать значение, функция обязана иметь оператор return, который специфицирует возвращаемое значение.
Все параметры передаются функции по значению; значение передаётся функции, но если функция изменяет значение параметра, это изменение не отражается глобально или в вызывающей функции. Однако, если Вы передаёте функции объект в качестве параметра и функция изменяет свойства объекта, эти изменения видны вне функции, как показано в следующем примере:
function myFunc(theObject) {Ключевое слово this не ссылается на выполняемую в данный момент функцию, поэтому Вы обязаны обращаться к Function-объектам по имени, даже в теле функции.
Доступ к аргументам функции через массив arguments. Вы можете обращаться в функции к аргументам функции, используя массив arguments. См. arguments.
Специфицирование аргументов в конструкторе Function. Следующий код создаёт Function-объект, принимающий два аргумента:
var multiply = new Function("x", "y", "return x * y")Аргументы "x" и "y" являются формальными именами аргументов, которые используются в теле функции, "return x * y".
Предыдущий код присваивает функцию переменной multiply. Для вызова Function-объекта Вы можете специфицировать имя переменной, как если бы она была функцией, как показано далее в примерах:
var theAnswer = multiply(7,6) var myAge = 50Присвоение функции переменной конструктором Function. Предположим, Вы создаёте переменную multiply с использованием конструктора Function, как показано в предыдущем разделе:
var multiply = new Function("x", "y", "return x * y")Это похоже на следующее объявление функции:
function multiply(x,y) {Присвоение функции переменной с использованием конструктора Function похоже на объявление функции оператором function, но имеются и отличия:
Когда Вы присваиваете функцию переменной с использованием var multiply = new Function("..."), multiply является переменной, для которой текущее значение является ссылкой на функцию, созданную как new Function(). Когда Вы создаёте функцию с использованием function multiply() {...}, multiply является не переменной, а именем функции.Вложение функций. Вы можете вкладывать функции друг в друга. Вложенная функция (внутренняя) является private для содержащей её (внешней) функции:
Доступ к внутренней функции может быть получен только через операторы внешней функции. Внутренняя функция может использовать аргументы и переменные внешней функции. Внешняя функция не может использовать аргументы и переменные внутренней функции.Следующий пример демонстрирует вложение функций:
function addSquares (a,b) {Если функция содержит вложенную функцию, Вы можете вызывать внешнюю функцию и специфицировать аргументы для внешней и внутренней функции:
function outside(x) {Специфицирование обработчика события объектом Function. Следующий код присваивает функцию обработчику onFocus (имя обработчика обязано записываться в нижнем регистре):
window.onfocus = new Function("document.bgColor='antiquewhite'")Если функция присваивается переменной, Вы можете присвоить переменную обработчику события. Следующий код присваивает функцию переменной setBGColor.
var setBGColor = new Function("document.bgColor='antiquewhite'")Вы можете использовать эту переменную для присвоения функции обработчику события одним из следующих способов:
document.form1.colorButton.onclick=setBGColor <INPUT NAME="colorButton" TYPE="button"После того как Вы получили ссылку на Function-объект, Вы можете использовать его как функцию, и он будет конвертирован из объекта в функцию:
window.onfocus()Обработчики событий не принимают аргументов, поэтому Вы не можете объявлять никакие аргументы в конструкторе Function для обработчика события. Например, Вы не можете вызывать функцию multiply через такую установку свойства onclick кнопки:
document.form1.button1.onclick=multFun(5,10)Можно присваивать различные this-объекты при вызове существующей функции. this относится к текущему объекту, вызывающему объекту. С помощью apply Вы можете записать метод только один раз и затем наследовать его в другом объекте без необходимости повторно записывать этот метод для нового объекта.
apply очень похож на call, за исключением поддерживаемых типов аргументов. Вы можете использовать массив arguments вместо именованного набора параметров. С помощью apply Вы можете использовать литерал массива, например, apply(this, [name, value]), или объект Array, например, apply(this, new Array(name, value)).
Вы можете также использовать arguments для параметра argArray.
arguments является локальной переменной функции. Он может использоваться для всех неспецифицированных аргументов вызываемого объекта. Таким образом, Вы не обязаны знать аргументы вызываемого объекта, когда используете метод apply. Вы можете использовать arguments для передачи всех аргументов вызываемому объекту. Вызванный объект тогда отвечает за обработку этих аргументов.
Вы можете обращаться к аргументам функции, используя массив arguments. Этот массив содержит вхождение для каждого аргумента, передаваемого функции. Например, если функции передаются три аргумента, Вы можете обратиться к аргументам так:
arguments[0]Массиву arguments может предшествовать также имя функции:
myFunc.arguments[0]Массив arguments доступен только внутри тела функции. Попытка получить доступ к массиву arguments вне объявления функции приведёт к ошибке.
Вы можете использовать массив arguments при вызове функции с бо́льшим количеством аргументов, чем она принимает по формальному объявлению. Эта техника используется для тех функций, которым можно передавать переменное количество аргументов. Вы можете использовать arguments.length для определения количества аргументов, передаваемых функции, и последующей обработки каждого аргумента с использованием массива arguments. (Для определения количества аргументов, объявленных при определении функции, используйте свойство Function.length.)
Массив arguments имеет следующие свойства:
arguments.callee | Специфицирует тело функции, исполняемой в данный момент. |
arguments.caller | Специфицирует имя функции, вызвавшей исполняемую в данный момент функцию. (Не рекомендуется.) |
arguments.length | Специфицирует количество аргументов, передаваемых функции. |
Свойство callee доступно только в теле функции.
Ключевое слово this не относится к исполняемой в данный момент функции. Используйте свойство callee для обращения к функции в теле этой функции.
caller больше не используется.
Свойство caller доступно только в теле функции.
Если исполняемая в данный момент функция была вызвана с верхнего уровня программы JavaScript, значение caller будет null.
Ключевое слово this не относится к исполняемой в данный момент функции, поэтому Вы обязаны к функциям и объектам Function по имени, даже в теле функции.
Свойство caller является ссылкой на вызывающую функцию, поэтому,
Если Вы используете её в строковом контексте, Вы получите результат вызова functionName.toString. То есть декомпилированную каноническую исходную форму функции. Вы также можете вызвать вызывающую функцию, если знаете аргументы, которые ей могут быть нужны. Таким образом, вызываемая функция может вызвать вызывающую функцию, не зная её имени, предполагая, что все её вызыватели имеют одну форму и размер и что они не будут необусловленно вызывать вызываемую функцию ещё раз (что может привести к бесконечной рекурсии).arguments.length выдаёт количество аргументов, реально переданных функции. В отличие от него, свойство Function.length указывает, сколько аргументов функция ожидает.
arity является внешним относительно функции и указывает, какое количество аргументов функция ожидает. В отличие от него, arguments.length предоставляет количество аргументов, реально переданных функции.
Вы можете присвоить разные объекты this при вызове существующей функции. this ссылается на текущий (вызывающий) объект.
С помощью call Вы можете записать метод однократно и затем наследовать его в другом объекте без необходимости записывать его ещё раз для нового объекта.
length является внешним относительно функции и указывает, сколько аргументов функция ожидает. В противоположность ему, arguments.length является локальным относительно функции и представляет количество аргументов, реально переданных функции.
Вы можете добавлять в существующий класс новые свойства или методы, добавляя их в прототип, ассоциированный с конструктором данного класса. Синтаксис добавления нового свойства или метода таков:
fun.prototype.name = valueгде
fun | Имя конструктора объекта, который вы хотите изменить. |
name | Имя создаваемого свойства или метода. |
value | Значение, присвоенное первоначально новому свойству или методу. |
Если Вы добавляете свойство в прототип объекта, то все объекты, созданные этой функцией-конструктором этих объектов, будут иметь это новое свойство, даже если объекты существовали до создания нового свойства. Например, предположим, имеются такие операторы:
var array1 = new Array();После установки свойства в прототипе все объекты, созданные с помощью Array, будут иметь это свойство:
anotherArray=new Array()Метод toSource возвращает следующие значения:
Для встроенного объекта Function метод toSource возвращает следующие строки, указывающие на недоступность исходного кода: function Function() {Этот метод обычно вызывается JavaScript внутренне, а не явно в коде. Вы можете вызывать toSource при отладке для проверки содержимого объекта.
Объект Function переопределяет метод toString объекта Object; он не наследует Object.toString. Для объектов Function метод toString возвращает строку, представляющую объект.
JavaScript вызывает метод toString автоматически, если Function представлен как текстовое значение или если на Function имеется ссылка при конкатенации строк.
Для объектов Function встроенный метод toString декомпилирует функцию обратно в исходный код JavaScript, который определяет функцию. Эта строка содержит ключевое слово function, список аргументов, фигурные скобки и тело функции.
Например, имеется следующий код, где определяется тип объектов Dog и создаётся theDog, объект типа Dog:
function Dog(name,breed,color,sex) {Когда Dog используется в строковом контексте, JavaScript автоматически вызывает функцию toString, которая возвращает следующие строки:
function Dog(name, breed, color, sex) { this.name = name; this.breed = breed; this.color = color; this.sex = sex; }Метод valueOf возвращает следующие значения:
Для встроенного объекта Function метод valueOf возвращает следующую строку, указывающую, что исходный код недоступен:function Function() {Этот метод обычно вызывается JavaScript внутренне, а не явно в коде.
Объект Hidden является элементом формы и обязан быть определён в тэге FORM.
Объект Hidden не может быть виден конечному пользователю и не может им изменяться, но Вы можете программно изменить значение этого объекта, изменяя его свойство value. Вы можете использовать объекты Hidden для взаимодействия клиент/сервер.
Каждый элемент формы имеет свойство form, которое является ссылкой на родительскую форму элемента. Это свойство в основном используется в обработчиках событий, где Вам может понадобиться обратиться к другому элементу на этой же форме.
Для изменения текущего URL окна без генерации вхождения в history Вы можете использовать метод Location.replace. При этом текущая страница замещается другой без генерации вхождения в history. См. Location.replace.
Вы можете обратиться ко вхождениям в history через использование массива window.history. Этот массив содержит вхождение для каждого вхождения в history в порядке исходного кода. Каждое вхождение массива является строкой, содержащей URL. Например, если список history содержит три именованных вхождения, эти вхождения отражаются как history[0], history[1] и history[2].
Если Вы получаете доступ к массиву history без специфицирования элемента массива, браузер возвращает строку HTML, которая выводит таблицу URLs, каждый из которых является ссылкой.
Этот метод выполняет такую же акцию, что и пользователь, нажимая кнопку Back в браузере. Метод back это то же, что и history.go(-1).
Этот метод выполняет такое же действие, что и пользователь, нажимающий кнопку Forward в браузере. Метод forward это то же, что и history.go(1).
Метод go переходит к точке списка history, определённой специфицированным параметром.
Если аргумент delta равен 0, браузер перезагружает текущую страницу. Если целое число больше 0, метод go загружает URL, находящийся на специфицированное число вхождений впереди в списке history; иначе (если меньше 0) он загружает URL, находящийся на специфицированное число вхождений назад в списке history.
Аргумент location это строка. Используйте location для загрузки ближайшего вхождения из history, чей URL содержит location в качестве подстроки. Совпадение URL с параметром location делается с учётом регистра. Каждый раздел URL содержит свою информацию. См. в Location описание компонентов URL.
Метод go создаёт новое вхождение в списке history. Для загрузки URL без создания вхождения в списке history используйте Location.replace.
Позиция и размер изображения в документе устанавливаются при отображении документа web-браузером и не могут быть изменены с помощью JavaScript (свойства width и height являются для данного объекта read-only). Вы можете изменить выводимое изображение, установив свойства src и lowsrc. (См. описание Image.src и Image.lowsrc.)
Вы можете использовать JavaScript для создания анимации из объекта Image, выполняя повторяющуюся установку свойства src, как показано далее в Примере 4. Анимация JavaScript работает медленнее, чем GIF-анимация, поскольку GIF-анимация это один файл; при анимации JavaScript каждый фрэйм является отдельным файлом, и каждый файл обязан быть загружен из сети (установление связи с хостом, перенос данных...).
В основном объект Image, создаваемый конструктором Image, предназначен для загрузки изображения по сети (и его декодирования) до того момента, когда оно понадобится для отображения. Затем, если Вам нужно вывести изображение в существующей ячейке изображения, Вы устанавливаете в свойство src выводимого изображения то значение, которое используется для полученного ранее изображения:
myImage = new Image()Результирующее изображение будет получено из кэша, а не загружено по сети, что значительно сэкономит время, необходимое для загрузки и декодирования изображения. Можно использовать эту технику для создания сложных анимаций или выводить одно из нескольких изображений на основе ввода данных в форму.
Свойство border отражает атрибут BORDER тэга IMG. Для изображений, созданных конструктором Image, значение свойства border равно 0.
Свойство height отражает атрибут HEIGHT тэга IMG. Для изображений, созданных конструктором Image, значение свойства height является реальной, а не отображаемой, высотой изображения.
Свойство hspace отражает атрибут HSPACE тэга IMG. Для изображений, созданных конструктором Image, значение свойства hspace равно 0.
Свойство lowsrc первоначально отражает атрибут LOWSRC тэга IMG. Браузер загружает меньшее изображение, специфицированное свойством lowsrc, а затем замещает его изображением большего размера, специфицированным в свойстве src. Вы можете изменить свойство lowsrc в любое время.
Представляет значение атрибута NAME. Для изображений, созданных конструктором Image, значение свойства name равно null.
Свойство src первоначально отражает атрибут SRC тэга IMG. Установка свойства src начинает загрузку нового URL в область изображения (и прерывает передачу любых данных изображения, которые загружались в ту же самую область). Следовательно, если Вы планируете изменить свойство lowsrc, Вы должны сделать это до установки свойства src.
Если URL в свойстве src ссылается на изображение, которое имеет размер, отличный от размера ячейки, в которую оно загружается, изображение-источник масштабируется.
Если Вы изменяете свойство src выведенного изображения, новое изображение, которое Вы специфицируете, выводится в области, определённой для оригинального изображения. Например, объект Image первоначально выводит файл beluga.gif:
<IMG NAME="myImage" SRC="beluga.gif" ALIGN="left">Если Вы устанавливаете myImage.src='seaotter.gif', изображение seaotter.gif масштабируется для вмещения в то же пространство, которое первоначально было использовано для beluga.gif, даже если seaotter.gif не имеет те же размеры, что и beluga.gif.
Вы можете изменить свойство src в любое время.
Свойство vspace отражает атрибут VSPACE тэга IMG. Для изображений. созданных конструктором Image, значение свойства vspace равно 0.
Свойство width отражает атрибут WIDTH тэга IMG. Для изображений, созданных конструктором Image, значение свойства width является реальной фактической, а не отображаемой, шириной изображения.
Объект JavaArray является экземпляром Java-массива, который создаётся в или передаётся в JavaScript. JavaArray является оболочкой для экземпляра; все ссылки на этот экземпляр массива делаются через JavaArray.
Вы обязаны специфицировать объект класса, такой как объект, возвращаемый java.lang.Object.forName для параметра componentType экземпляра newInstance, если Вы используете этот метод для создания массива. Вы не можете использовать объект JavaClass для параметра componentType.
Используйте индексы с базой 0 для доступа к элементам объекта JavaArray так же, как Вы делаете при доступе к элементам массива в языке Java. Например:
var javaString = new java.lang.String("Hello world!");Любые Java-данные, перенесённые в JavaScript, конвертируются в типы данных JavaScript. Если JavaArray передаётся обратно в Java, оболочка с массива снимается, и он может использоваться кодом Java. См. в книге Клиентский JavaScript. Руководство. информацию о конвертации типов данных.
В отличие от Array.length, JavaArray.length является свойством только для чтения. Вы не можете изменить значение свойства JavaArray.length, поскольку массивы Java всегда имеют фиксированное количество элементов.
Метод toString наследуется из объекта Object и возвращает следующее значение:
[object JavaArray]Объект JavaClass является ссылкой на один из классов Java-пакета, такого как netscape.javascript.JSObject. Объект JavaPackage является ссылкой на Java-пакет, такой как netscape.javascript. В JavaScript иерархия JavaPackage и JavaClass отражает иерархию пакетов и классов Java.
Вы обязаны создать оболочку вокруг экземпляра java.lang.Class, прежде чем передать его в качестве параметра Java-методу -- JavaClass-объекты не конвертируются автоматически в экземпляры java.lang.Class.
Объект JavaObject является экземпляром Java-класса, который создаётся в или передаётся в JavaScript. JavaObject является оболочкой экземпляра; все ссылки на экземпляр класса делаются через JavaObject.
Любые данные Java, перенесённые в JavaScript, конвертируются в типы данных JavaScript. Если JavaObject передаётся обратно в Java, оболочка с него снимается, и он может использоваться в коде Java. См. в книге Клиентский JavaScript. Руководство. информацию о конвертации типов данных.
В Java пакет является коллекцией Java-классов или других Java-пакетов. Например, пакет netscape содержит пакет netscape.javascript; пакет netscape.javascript содержит классы JSObject и JSException.
В JavaScript объект JavaPackage является ссылкой на Java-пакет. Например, ссылкой на netscape является JavaPackage.
netscape.javascript является одновременно объектом JavaPackage и свойством из netscape JavaPackage.
Объект JavaClass является ссылкой на один из классов пакета, такой как netscape.javascript.JSObject. Иерархия JavaPackage и JavaClass отражает иерархию пакетов и классов Java.
Хотя пакеты и классы, содержащиеся в JavaPackage, являются его свойствами, Вы не можете использовать оператор for...in для перечисления их, как это можно сделать в других объектах.
Каждый слой имеет свойство background, значением которого является объект image, атрибут src которого это URL, указывающий на изображение, используемое для размножения и заполнения фона. Значение null будет тогда, когда слой не имеет фона. Например:
layer.background.src = "fishbg.gif";Свойство bgColor выражается как 16-ричный RGB-триплет или как строковой литерал (см. книгу Клиентский JavaScript. Руководство). Это свойство является отражением в JavaScript атрибута BGCOLOR тэга BODY.
Вы можете установить свойство bgColor в любой момент.
Если Вы выражаете цвет как 16-ричный RGB-триплет, Вы обязаны использовать формат rrggbb. Например, 16-ричные значения RGB для цвета salmon - red=FA, green=80 и blue=72, и RGB-триплет для salmon будет, соответственно, "FA8072".
Если окно с фрэймами должно захватывать события на страницах, загруженных с других серверов, Вам нужно будет использовать captureEvents в помеченном скрипте с предшествующим enableExternalCapture. Дополнительную информацию и примеры см. в разделе о enableExternalCapture.
captureEvents работает вместе с releaseEvents, routeEvent и handleEvent. Информацию по обработке событий см. в книге Клиентский JavaScript. Руководство.
Каждый объект layer содержит свой собственный объект document. Этот объект может использоваться для доступа к изображениям, аплетам, гиперссылкам, внедрённым объектам, якорям и слоям, которые находятся в слое. Методы объекта document также могут вызываться для изменения содержимого слоя.
handleEvent работает вместе с captureEvents, releaseEvents и routeEvent. Информацию по обработке событий см в книге Клиентский JavaScript. Руководство.
Изменяет позицию слоя на специфицированные, в пикселах, координаты в пределах содержащего слоя. Для ILayers перемещает слой относительно естественной inflow-позиции слоя.
Этот метод эквивалентен установке свойств pageX и pageY объекта layer.
Если первоначальной целью события является окно, это окно получает событие даже в том случае, если оно (окно) имеет установку - освобождать события данного типа. releaseEvents работает вместе с captureEvents, routeEvent и handleEvent. Дополнительно см. книгу Клиентский JavaScript. Руководство.
Он не распределяет HTML, содержащийся в слое. Наоборот, содержимое слоя может быть обрезано по новым границам слоя. Этот метод даёт тот же эффект, что и добавление width и height в clip.width и clip.height.
Он не распределяет HTML, содержащийся в слое. Наоборот, содержимое слоя может быть обрезано по новым границам слоя.
Этот метод даёт тот же эффект, что и установка clip.width и clip.height.
Если субобъект (документ или слой) также захватывает событие, это событие передаётся этому объекту. Иначе оно пересылается цели-оригиналу.
routeEvent работает вместе с captureEvents, releaseEvents и handleEvent. Дополнительно см. книгу Клиентский JavaScript. Руководство.
Значение show - показать слой; hide - скрыть слой; inherit - наследовать видимость от родительского слоя.
Слои-родственники с более низкими z-индексами помещаются в стэке под данным слоем. Значение zIndex обязано быть 0 или положительным целым числом.
Каждый Link является location-объектом и имеет те же свойства, что и location-объект.
Если Link-объект является также Anchor-объектом, он имеет вхождения и в массиве anchors, и в массиве links.
Если пользователь щёлкает Link-объект и переходит к документу назначения (специфицируемому атрибутом HREF="locationOrURL"), свойство referrer документа назначения содержит URL исходного документа.
Вы можете использовать Link-объект для выполнения функции JavaScript, а не для перехода по ссылке, специфицировав URL-протокол javascript: в атрибуте HREF гиперссылки. Вам это может понадобиться, если ссылка содержит объект Image и Вы хотите выполнить код JavaScript при щелчке по изображению. Либо Вам может понадобиться использовать ссылку вместо кнопки для выполнения кода JavaScript.
Например, если пользователь щёлкает по следующим ссылкам, выполняются функции slower и faster:
<A HREF="javascript:slower()">Slower</A>Вы можете использовать объект Link, чтобы не выполнять никаких действий, специфицировав URL-протокол javascript:void(0) в атрибуте HREF гиперссылки. Вам это может понадобиться, если ссылка окружает объект Image и Вы хотите использовать обработчики события ссылки для изображения. Если пользователь щёлкает по следующим ссылкам, ничего не происходит:
<A HREF="javascript:void(0)">Click here to do nothing</A> <A HREF="javascript:void(0)">Свойство hash специфицирует часть URL. Это свойство применяется только к HTTP URL.
Будьте внимательны при использовании этого свойства. Предположим, document.links[0] содержит:
http://royalairways.com/fish.htm#angelТогда document.links[0].hash возвратит #angel. Предположим, у Вас имеется такой код:
hash = document.links[0].hash;Теперь document.links[0].hash возвращает ##angel.
Это поведение может быть изменено в последующих версиях.
Вы можете установить свойство hash в любой момент, хотя безопаснее делать это до изменения расположения. Если хэш, который Вы специфицируете, не может быть найден в текущем месте, Вы получите ошибку.
Установка свойства hash выполняет переход к именованному якорю без перезагрузки документа. Это отличается от способа загрузки документа при установке свойств link.
См. в документе RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.html) полную информацию о хэше.
Свойство host специфицирует часть URL. Свойство host является подстрокой свойства hostname. Свойство hostname образуется путём конкатенации свойств host и port, разделённых двоеточием. Если свойство port имеет значение null, свойство host имеет то же значение, что и свойство hostname.
Вы можете установить свойство host в любой момент, хотя безопаснее установить свойство href для изменения местоположения. Если специфицированный Вами хост не может быть найден в текущем месте, Вы получите ошибку.
См. в Разделе 3.1 документа RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.html) полную информацию о hostname и port.
Свойство hostname специфицирует часть URL. Свойство hostname образуется путём конкатенации свойств host и port, разделённых двоеточием. Если свойство port имеет значение 80 (это значение по умолчанию), свойство host имеет то же значение, что и свойство hostname.
Вы можете установить свойство hostname в любой момент, хотя безопаснее установить свойство href для изменения местоположения. Если специфицированное Вами имя хоста не может быть найдено в текущем месте, Вы получите ошибку.
См. в Разделе 3.1 документа RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.html) полную информацию о hostname.
Свойство href специфицирует весь URL целиком. Другие свойства объекта link являются подстроками свойства href.
Вы можете установить свойство href в любой момент.
См. в RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.html) полную информацию о URL.
Свойство pathname специфицирует часть URL. Оно даёт детальную информацию о том, как может быть достигнут специфицированный ресурс.
Вы можете установить свойство pathname в любой момент, хотя безопаснее установить свойство href для изменения местоположения. Если специфицированный Вами pathname не может быть найден в текущем месте, Вы получите ошибку.
См. в Разделе 3.1 документа RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.html) полную информацию о pathname.
Свойство port специфицирует часть URL. Свойство port является подстрокой свойства hostname. Свойство hostname образуется путём конкатенации свойств host и port, разделённых двоеточием. Если свойство port имеет значение 80 (это значение по умолчанию), свойство host имеет то же значение, что и свойство hostname.
Вы можете установить свойство port в любой момент, хотя безопаснее установить свойство href для изменения местоположения. Если специфицированный Вами port не может быть найден в текущем месте, Вы получите ошибку. Если свойство port не специфицировано, по умолчанию предполагается номер порта 80.
См. в Разделе 3.1 документа RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.html) полную информацию о port.
Свойство protocol специфицирует часть URL. Оно указывает метод доступа к URL. Например, значение "http:" специфицирует HyperText Transfer Protocol, а значение "javascript:" специфицирует код JavaScript.
Вы можете установить свойство protocol в любой момент, хотя безопаснее установить свойство href для изменения местоположения. Если специфицированный Вами не может быть найден в текущем месте, Вы получите ошибку.
Свойство protocol представляет схему именования URL. См. в Разделе 2.1 документа RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.html) полную информацию о protocol.
Свойство search является частью URL. Это свойство применяется только к http URLs.
Свойство search содержит пары переменная/значение; каждая пара отделена амперсандом. Например, две пары в строке поиска могут выглядеть так:
?x=7&y=5Вы можете установить свойство search в любой момент, хотя безопаснее установить свойство href для изменения местоположения. Если специфицированное Вами search не может быть найдено в текущем месте, Вы получите ошибку.
См. в Разделе 3.3 документа RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.html) полную информацию о search.
Свойство target первоначально отражает значение атрибута TARGET тэгов A или AREA; однако установка target переопределяет этот атрибут.
Вы можете установить target с использованием строки, если строка представляет имя окна. Свойству target не может быть присвоено значение переменной или выражения JavaScript.
Вы можете установить свойство target в любой момент.
Объект location представляет полный URL, ассоциированный с данным объектом window. Каждое свойство объекта location представляет разные части URL.
В целом URL имеет форму:
protocol//host:port/pathname#hash?searchНапример:
http://home.netscape.com/assist/extensions.html#topic1?x=7&y=2Эти части имеют следующее предназначение:
protocol представляет начало URL до первого двоеточия включительно. host это имя хоста и домена или IP-адрес сетевого хоста. port это порт соединения, используемый сервером. pathname это часть URL-путь URL. hash это фрагмент имени якоря в URL, включая символ хэша (#). Это свойство применяется только к HTTP URLs.search это информация запроса, присоединённая к URL, включая знак вопроса (?). Это свойство применяется только к HTTP URLs. Строка поиска содержит пары переменная/значение; каждая пара отделена амперсандом (&).Объект Location имеет свойства для всех частей URL. См. конкретные свойства. Объект Location имеет ещё два свойства:
href - полный URL. hostname - конкатенация свойств host:port.Если Вы присваиваете строку свойству location объекта, JavaScript создаёт объект location и присваивает эту строку его свойству href. Например, следующие два оператора эквивалентны и устанавливают URL для текущего окна - домашнюю страницу Netscape:
window.location.href="http://home.netscape.com/"Объект location содержится в объекте window и находится в его области видимости/scope. Если Вы обращаетесь к объекту location без специфицирования window, объект location представляет текущее окно. Если Вы обращаетесь к объекту location и специфицируете имя окна, как, например, windowReference.location, объект location представляет местоположение в специфицированном окне.
В обработчиках событий Вы обязаны специфицировать window.location, а не просто location. Из-за ограничений области видимости static-объектов JavaScript, вызов location без специфицирования имени объекта эквивалентно document.location, что является синонимом для document.URL.
Location не является свойством объекта document; его эквивалентом является свойство document.URL. Свойство document.location, являющееся синонимом для document.URL, применять не рекомендуется.
Как документы загружаются при установленном location. Если Вы установили объект location или любое из его свойств, за исключением hash, то, как загружается новый документ, зависит от версии используемого браузера:
В JavaScript 1.0 установка location выполняет условную операцию ("If-modified-since") HTTP GET, которая не возвращает с сервера, если только документ не был модифицирован с момента загрузки последней версии. В JavaScript 1.1 и позднее эффект от установки location зависит от установок пользователя для сравнения документа с оригиналом по сети. Опция интерфейса пользователя для установки этого свойства зависит от версии браузера. Пользователь определяет, проверять ли документ в кэше браузера каждый раз при доступе к нему, один раз в сессию или никогда. Документ перезагружается из кэша, если пользователь установил опции "никогда" или "один раз в сессию"; документ перезагружается с сервера только в том случае, если пользователь установил опцию "каждый раз при доступе".Синтаксис обычных типов URL. Если Вы специфицируете URL, можно использовать стандартные форматы URL и операторы JavaScript. В таблице показан синтаксис для специфицирования наиболее распространённых типов URL.
JavaScript-код | javascript: | javascript:history.go(-1) |
Программа просмотра исходного кода в Navigator'е | view-source: | view-source:wysiwyg://0/file:/c|/temp/genhtml.html |
Navigator info | about: | about:cache |
World Wide Web | http: | http://home.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.lang.javascript |
Gopher | gopher: | gopher.myhost.com |
Далее идут пояснения по некоторым протоколам:
Протокол javascript: вычисляет выражение, идущее после двоеточия (:), если оно имеется, и загружает страницу, содержащую строковое значение выражения, если только оно не undefined. Если выражение вычисляется в undefined (вызовом void-функции, например, javascript:void(0)), новая страница не загружается. Обратите внимание, что загрузка новой страницы поверх Вашей страницы со скриптом очищает значения переменных страницы, функции и т.п. Протокол view-source: выводит код HTML, который был сгенерирован методами JavaScript-методами document.write и document.writeln. О печати и сохранении сгенерированного HTML см. document.write. Протокол about: предоставляет информацию о Navigator'е. Например: about: этот то же, что и выбор меню About Communicator из Help. about:cache отображает статистику кэширования. about:plugins выводит информацию о plug-ins, сконфигурированных Вами. Это то же самое, что выбор меню About Plug-ins из Help.Свойство hash специфицирует часть URL. Это свойство применяется только к HTTP URL.
Вы можете установить свойство hash в любое время, хотя надёжнее установить свойство href для изменения местоположения. Если установленное Вами свойство hash не может быть найдено в текущем месте, Вы получите ошибку.
Установка свойства hash даёт переход к именованному якорю без перезагрузки документа. Это отличается от загрузки документа при установке других location-свойств (см. "Как загружаются документы при установке location").
См. в документе RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.html) полную информацию о hash.
Свойство host специфицирует часть URL. Свойство host является подстрокой свойства hostname. Свойство hostname получается путём конкатенации свойств host и port, разделённых двоеточием. Если значение свойства port равно null, свойство host будет тем же самым, что и свойство hostname.
Вы можете установить свойство host в любое время, хотя надёжнее установить свойство href для изменения местоположения. Если host не может быть найдено в текущем месте, Вы получите ошибку.
См. в Разделе 3.1 документа RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.html) полную информацию о hostname и port.
Свойство hostname специфицирует часть URL. Свойство hostname получается путём конкатенации свойств host и port, разделённых двоеточием. Если свойство port имеет значение 80 (это значение по умолчанию), свойство host будет таким же, что и свойство hostname.
Вы можете установить свойство hostname в любое время, хотя надёжнее установить свойство href для изменения местоположения. Если специфицированное Вами свойство hostname не может быть найдено в текущем месте, Вы получите ошибку.
См. в Разделе 3.1 документа RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.html) полную информацию о hostname.
Свойство href специфицирует полный URL. Другие свойства объекта location являются подстроками свойства href. Если Вам необходимо изменить URL, ассоциированный с окном, Вы должны изменить свойство href; это корректно обновит все другие свойства.
Вы можете установить свойство href в любое время.
Отсутствие свойства при указании объекта location равносильно специфицированию location.href. Например, следующие два оператора эквивалентны и устанавливают URL текущего окна - домашнюю страницу Netscape:
window.location.href="http://home.netscape.com/"См. в документе RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.html) полную информацию о URL.
Свойство pathname специфицирует часть URL. Свойство pathname указывает детали получения доступа к специфицированному ресурсу.
Вы можете установить свойство pathname в любое время, хотя надёжнее установить свойство href для изменения местоположения. Если специфицированное Вами свойство pathname не может быть найдено в текущем месте, Вы получите ошибку.
См. в Разделе 3.1 документа RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.html) полную информацию о pathname.
Свойство port специфицирует часть URL. Свойство port является подстрокой свойства hostname. Свойство hostname получается путём конкатенации свойств host и port, разделённых двоеточием.
Вы можете установить свойство port в любое время, хотя надёжнее установить свойство href для изменения местоположения. Если специфицированное Вами свойство port не может быть найдено в текущем месте, Вы получите ошибку. Если свойство port не специфицировано, он имеет значение по умолчанию 80.
См. в Разделе 3.1 документа RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.html) полную информацию о port.
Свойство protocol специфицирует часть URL. Свойство protocol указывает метод доступа URL. Например, значение "http:" специфицирует протокол HyperText Transfer Protocol, а значение "javascript:" специфицирует код JavaScript.
Вы можете установить свойство protocol в любое время, хотя надёжнее установить свойство href для изменения местоположения. Если специфицированное Вами свойство protocol не может быть найдено в текущем месте, Вы получите ошибку.
Свойство protocol представляет имя схемы URL. См. в Разделе 2.1 документа RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.html) полную информацию о protocol.
Этот метод использует ту же политику, что и кнопка Reload браузера. Интерфейс пользователя для установки значения по умолчанию этой политики варьируется для различных версий браузеров.
По умолчанию метод reload не форсирует транзакцию сервера. Однако, если пользователь установил проверку версии документа при каждом доступе к нему, этот метод выполняет "условный GET-запрос" с использованием HTTP header/шапки If-modified-since для получения с сервера запрашиваемого документа только в том случае, если время last-modified новее, чем время, хранимое в кэше клиента. Другими словами, reload перезагружает документ из кэша только в том случае, если не специфицирована проверка каждый раз и документ не изменился на сервере с момента его последней загрузки и сохранения в кэше.
Метод replace загружает специфицированный URL поверх текущего вхождения в списке history. После вызова метода replace пользователь не может перейти к предыдущему URL, щёлкнув кнопку Back браузера.
Если Ваша программа работает с JavaScript 1.0, Вы можете поместить следующие строки в тэг SCRIPT перед Вашей программой. Это эмулирует replace, который был введён в JavaScript 1.1:
if (location.replace == null)Метод replace не создаёт новое вхождение в списке history. Для создания нового вхождения в списке history при загрузке URL используйте метод History.go.
Свойство search специфицирует часть URL. Это свойство применяется только к HTTP URLs.
Свойство search содержит пары переменная/значение; каждая пара отделяется амперсандом (&). Например, две пары в строке search могут выглядеть так:
?x=7&y=5Вы можете установить свойство search в любое время, хотя надёжнее установить свойство href для изменения местоположения. Если установленное Вами свойство search не может быть найдено в текущем месте, Вы получите ошибку.
См. в Разделе 3.3 документа RFC 1738 (http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.html) полную информацию о search.
Все свойства объекта Math являются static/статическими. Вы обращаетесь к константе PI так: Math.PI, и можете вызвать функцию вычисления синуса так: Math.sin(x), где x это аргумент метода. Константы определяются с полной точностью реальных чисел JavaScript.
Часто бывает удобно использовать оператор with при работе с несколькими константами и методами объекта Math, так, чтобы не вводить постоянно "Math". Например:
with (Math) {Поскольку abs это static-метод объекта Math, Вы всегда записываете его Math.abs(), а не как метод Math-объекта, созданного Вами.
Метод acos возвращает числовое значение в диапазоне от 0 до pi радиан. Если значение number находится вне пределов этого диапазона, метод возвращает NaN.
Поскольку acos это static-метод объекта Math, он всегда записывается Math.acos(), а не как метод Math-объекта, созданного Вами.
Метод asin возвращает числовое значение в диапазоне от -pi/2 до pi/2 радиан. Если значение number находится вне этого диапазона, метод возвращает NaN.
Поскольку asin это static-метод объекта Math, он всегда записывается Math.asin(), а не как метод Math-объекта, созданного Вами.
Метод atan возвращает числовое значение в диапазоне от -pi/2 до pi/2 радиан.
Поскольку atan это static-метод объекта Math, он всегда записывается Math.atan(), а не как метод Math-объекта, созданного Вами.
Метод atan2 возвращает числовое значение в диапазоне от -pi до pi, представляющее угол тета точки (x,y). Это угол в направлении против часовой стрелки, в радианах, между положительной осью X и точкой (x,y). Заметьте, что аргументы этой функции передают сначала y-координату, а затем уже x-координату.
В atan2 по отдельности передаются аргументы x и y и частное от деления этих аргументов.
Поскольку atan2 это static-метод объекта Math, он всегда записывается Math.atan2(), а не как метод Math-объекта, созданного Вами.
Поскольку ceil это static-метод объекта Math, он всегда записывается Math.ceil(), а не как метод Math-объекта, созданного Вами.
Метод cos возвращает числовое значение в диапазоне от -1 до 1, которое представляет косинус угла.
Поскольку cos это static-метод объекта Math, он всегда записывается Math.cos(), а не как метод Math-объекта, созданного Вами.
Поскольку E это static-свойство объекта Math, оно всегда записывается Math.E, а не как свойство Math-объекта, созданного Вами.
Поскольку exp это static-метод объекта Math, он всегда записывается Math.exp(), а не как метод Math-объекта, созданного Вами.
Поскольку floor это static-метод объекта Math, он всегда записывается Math.floor(), а не как метод Math-объекта, созданного Вами.