Содержит информацию о текущем документе и предоставляет методы для отображения HTML-вывода пользователю.
JavaScript 1.1:
добавлен синтаксис JavaScript 1.2: добавлены свойства | |
HTML-тэгом BODY. Машина выполнения JavaScript создаёт объект document
для каждой HTML-страницы. Каждый объект window
имеет свойство
document, значением которого является объект document.
Для определения объекта document
используйте стандартный синтаксис HTML для тэга
BODY с дополнением обработчиками событий JavaScript.
Обработчики событий onBlur, onFocus, onLoad
и onUnload специфицируются в тэге BODY, но реально
являются обработчиками событий объекта window.
Вот обработчики событий объекта document:
Документ HTML состоит из тэгов HEAD и BODY.
Тэг HEAD содержит информацию о заголовке и базе документа (абсолютном
базовом URL, используемом для разрешения относительных URL-гиперссылок данного
документа). Тэг BODY содержит тело документа,
которое определяется текущим URL. Всё тело документа (все остальные элементы HTML
данного документа) находится внутри тэгов BODY.
Вы можете загружать новый документ, устанавливая свойство window.location.
Вы можете очистить панель документа (и удалить текст, элементы формы и т.д., и они не будут больше отображаться) с помощью таких операторов:
document.close();
document.open();
document.write();
Можно опустить вызов document.open, если
Вы пишете текст или
HTML, поскольку write выполняет неявное открытие MIME-типа, если
поток документа закрывается.
Вы можете обращаться к якорям/anchors, формам/forms и
ссылкам/ links документа, используя массивы
anchors, forms и links. Эти массивы
содержат вхождения для каждого якоря, формы или ссылки документа и являются
свойствами объекта document.
Не используйте location как свойство
объекта document; используйте вместо него свойство document.URL.
Свойство document.location,
которое является синонимом свойства document.URL, не рекомендуется
применять.
| Свойство | Описание |
|---|---|
| |
| |
| |
| |
| Создаёт объект
|
| |
| |
| |
| |
| |
| |
| |
| Создаёт объект
|
| |
| Строка, специфицирующая дату последнего изменения документа. |
| |
| |
| |
| |
| |
|
Создаёт объект
|
| |
| |
| |
|
| Метод |
ОписаниеУстанавливает захват документом всех событий специфицированного типа.
|
Использует контекстуальный отбор по критериям специфицирования объекта
|
|
| Устанавливает освобождение объектами window или document захваченных событий специфицированного типа. Передаёт захваченное событие по иерархии нормальных событий.
Записывает одно или более выражений HTML в документ в специфицированном окне.
Записывает одно или более выражений HTML и символ новой строки в документ в специфицированном окне. |
|---|
Помимо этого, данный объект наследует методы
watch и unwatch объекта
Object.
Следующий пример создаёт два фрэйма, каждый с одним документом. Документ первого фрэйма содержит ссылки на якоря в документе второго фрэйма. Каждый документ определяет свой цвет.
doc0.html, который определяет фрэймы, содержит следующий код:
<HTML>
<HEAD>
<TITLE>Document object example</TITLE>
</HEAD>
<FRAMESET COLS="30%,70%">
<FRAME SRC="doc1.html" NAME="frame1">
<FRAME SRC="doc2.html" NAME="frame2">
</FRAMESET>
</HTML>
doc1.html, который определяет содержимое
первого фрэйма, содержит следующий код:
<HTML>
<SCRIPT>
</SCRIPT>
<BODY
BGCOLOR="antiquewhite"
TEXT="darkviolet"
LINK="fuchsia"
ALINK="forestgreen"
VLINK="navy">
<P><B>Some links</B>
<LI><A HREF="doc2.html#numbers" TARGET="frame2">Numbers</A>
<LI><A HREF="doc2.html#colors" TARGET="frame2">Colors</A>
<LI><A HREF="doc2.html#musicTypes" TARGET="frame2">Music types</A>
<LI><A HREF="doc2.html#countries" TARGET="frame2">Countries</A>
</BODY>
</HTML>
doc2.html, который
определяет содержимое второго фрэйма, содержит следующий код:
<HTML>
<SCRIPT>
</SCRIPT>
<BODY
BGCOLOR="oldlace" onLoad="alert('Hello, World.')"
TEXT="navy">
<P><A NAME="numbers"><B>Some numbers</B></A>
<UL><LI>one
<LI>two
<LI>three
<LI>four</UL>
<P><A NAME="colors"><B>Some colors</B></A>
<UL><LI>red
<LI>orange
<LI>yellow
<LI>green</UL>
<P><A NAME="musicTypes"><B>Some music types</B></A>
<UL><LI>R&B
<LI>Jazz
<LI>Soul
<LI>Reggae</UL>
<P><A NAME="countries"><B>Some countries</B></A>
<UL><LI>Afghanistan
<LI>Brazil
<LI>Canada
<LI>Finland</UL>
</BODY>
</HTML>
Frame,
windowСтрока, специфицирующая цвет активной гиперссылки (после нажатия кнопки мыши, но до её отпускания).
Свойство
alinkColor выражается как 16-ричный триплет RGB или как строковой
литерал (см. книгу .). Это свойство является отражением в JavaScript атрибута
ALINK тэга BODY.
Если Вы выводите цвет как 16-ричный триплет RGB, Вы обязаны использовать формат rrggbb.
Например, 16-ричное значение RGB цвета salmon будет red=FA, green=80
и blue=72, так что RGB-триплет для salmon будет "FA8072".
В этом примере устанавливается цвет активной гиперссылки с использованием строкового литерала:
document.alinkColor="aqua"
Здесь устанавливается цвет активной ссылки aqua с использованием 16-ричного триплета:
document.alinkColor="00FFFF"
document.bgColor,
document.fgColor, document.linkColor,
document.vlinkColorМассив объектов, соответствующих именованным якорям в порядке размещения в исходном коде.
Вы можете обращаться к объектам Anchor в Вашем коде, используя
массив anchors.
Этот массив содержит вхождение для каждого тэга A, имеющегp" class="propindex" height="40"><border-width> | inherit
LINK тэга BODY. Значение по умолчанию этого свойства
устанавливается пользователем в диалоговом окне установок браузера. Вы не можете
установить это свойство после того как исходный код HTML отображён.
При выражении цвета как 16-ричного RGB-триплета Вы обязаны использовать формат rrggbb.
Например, 16-ричные значения RGB для цвета salmon будут
red=FA, green=80 и blue=72, поэтому RGB-триплет
для salmon будет "FA8072".
Здесь цвет гиперссылок документа устанавливается в aqua с использованием строкового литерала:
document.linkColor="aqua"
А здесь - с использованием 16-ричного триплета:
document.linkColor="00FFFF"
document.alinkColor, document.bgColor,
document.fgColor, document.vlinkColor
Массив объектов, соответствующий объектам Area и Link
в порядке вхождения в исходном коде.
JavaScript 1.1. Это свойство по умолчанию разрушено. О разрушении данных см. книгу .
Вы можете обращаться
к объектам Area и Link в Вашем коде через
использование массива links. Этот массив содержит вхождение для
каждого объекта Area
(тэг <AREA HREF="...">) и Link
(<A HREF="...">) документа в порядке появления в
исходном коде. Он также содержит ссылки, созданные методом link.
Например, если в документе есть три ссылки, можно обратиться к ним так:
document.links[0]
document.links[1]
document.links[2]
Для получения общего количества ссылок в документе,
используйте свойство length: document.links.length.
Открывает поток для сбора вывода методов write
или
writeln.
JavaScript 1.1:
добавлен параметр
|
open([mimeType, [replace]])
text/html специфицирует документ,
содержащий ASCII-текст с форматированием HTML.text/plain специфицирует документ, содержащий обычный ASCII-текст с
символами конца строки для разграничения отображаемых строк.image/gif
специфицирует документ, кодирующий байты, образующие GIF-шарку и пикселные
данные.image/jpeg специфицирует документ, кодирующий байты, образующие JPEG-шапку
и пикселные данные.image/x-bitmap специфицирует документ, кодирующий байты, образующие
битовую шапку и пикселные данные.plugIn загружает специфицированный plug-in
и использует его как цель/назначение для методов write и writeln.
Например, "x-world/vrml" загружает VR Scout
VRML plug-in с Chaco Communications, а "application/x-director"
загружает
Macromedia Shockwave plug-in. MIME-типы рlug-in'ов
верны только тогда, когда пользователь установил требуемое программное
обеспечение для
plug-in'а.Метод open
открывает поток для сбора вывода методов write или writeln.
Если
mimeType это text или image, поток
открывается для вывода;
иначе поток открывается для plug-in'а. Если документ
существует в целевом окне,
метод open очищает его.
Поток
закрывается путём использования метода
document.close. Метод close вызывает отображение
текста или изображений, которые были посланы для вывода. После использования document.close
вызовите document.open ещё раз, если Вам нужно начать другой поток
вывода.
В JavaScript 1.1 или позднее document.open или document.open("text/html")
очищает текущий документ, если он закончил загрузку. Поэтому этот тип вызова
open записывает по умолчанию тэг <BASE HREF=>,
так что Вы можете генерировать относительные URL на основе базы документа,
генерирующего скрипт.
Ключевое слово "replace" вызывает повторное использование новым
документом вхождения в history, использованного предыдущим документом. Если Вы
специфицируете "replace" при открытии документа,
размер истории/history не увеличивается, даже если Вы записали в окно и закрыли
его.
"replace" обычно используется в окне,
в котором находится пустой документ или документ с URL "about:blank".
После специфицирования "replace" метод write обычно
генерирует HTML для окна, замещая вхождение в history для пустого URL. Будьте
внимательны при использовании генерируемого HTML в окне с пустым/blank URL. Если
Вы не специфицируете "replace", генерируемый HTML имеет своё
собственное вхождение в history, и пользователь может, нажав кнопку Back,
вернуться в пустой фрэйм.
После выполнения document.open("text/html","replace") history.current
для целевого окна будет URL документа, который выполнил document.open.
Пример 1. Здесь функция вызывает document.open для открытия
потока перед использованием метода write:
function windowWriter1() {
var myString = "Hello, world!"
msgWindow.document.open()
msgWindow.document.write("<P>" + myString)
msgWindow.document.close()
}
Пример 2. Эта функция вызывает document.open
с ключевым словом "replace" для открытия потока перед
использованием методов write. Код
HTML в методах write записывается в msgWindow, замещая
текущее вхождение в
history. Размер истории/history окна msgWindow не увеличивается.
function windowWriter2() {
var myString = "Hello, world!"
msgWindow.document.open("text/html","replace")
msgWindow.document.write("<P>" + myString)
msgWindow.document.write("<P>history.length is " +
msgWindow.history.length)
msgWindow.document.close()
}
Следующий код создаёт окно msgWindow и вызывает функцию:
msgWindow=window.open('','',
'toolbar=yes,scrollbars=yes,width=400,height=300')
windowWriter2()
Пример 3. Здесь функция probePlugIn
определяет, имеется ли у пользователя установленный Shockwave plug-in:
function probePlugIn(mimeType) {
var havePlugIn = false
var tiny = window.open("", "teensy", "width=1,height=1")
if (tiny != null) {
if
(tiny.document.open(mimeType) != null)
havePlugIn = true
tiny.close()
}
return havePlugIn
}
var haveShockwavePlugIn = probePlugIn("application/x-director")
document.close, document.write,
document.writeln,
Location.reload,
Location.replaceМассив объектов,
соответствующих объектам
Plugin в порядке расположения в
исходном коде.
Вы можете обращаться к объектам Plugin
в исходном коде, используя массив plugins. Этот массив содержит
вхождение для каждого объекта
Plugin документа в порядке
расположения в исходном коде. Например, если в документе имеются три plugin'а,
Вы можете обратиться к ним так:
document.plugins[0]
document.plugins[1]
document.plugins[2]
Специфицирует URL вызывающего документа, когда пользователь щёлкает по ссылке.
JavaScript 1.1. Это свойство по умолчанию разрушено/запорчено. О разрушении данных см. книгу .
Когда пользователь
переходит к другому документу, щёлкая объект Link в исходном
документе, свойство referrer содержит URL исходного документа.
referrer является пустым, если пользователь ввёл URL в окне Location
браузера и использовал какой-нибудь иной способ получения текущего URL. referrer
является пустым также, если сервер не предоставляет информации о переменной
окружения.
Здесь функция getReferrer вызывается из документа назначения.
Она возвращает URL исходного документа.
function getReferrer() {
return document.referrer
}
Заставляет документ освободить захваченные события специфицированного типа, отсылая события объектам, следующим далее по иерархии событий.
ПРИМЕЧАНИЕ: Если целевым оригиналом события является окно, оно получает событие, даже если окно установлено для освобождения этого типа событий.
releaseEvents(eventType)
eventType |
releaseEvents работает вместе с captureEvents, routeEvent
и handleEvent. О событиях см. дополнительно книгу .
Передаёт захваченное событие по нормальной иерархии событий.
routeEvent(event)
event |
Если субобъект (document или layer) также захватывает событие, событие пересылается этому объекту. Иначе оно высылается оригинальному целевому объекту.
routeEvent работает вместе с captureEvents, releaseEvents
и handleEvent. О событиях см. дополнительно книгу .
Создаёт объект Style, который может
специфицировать стили HTML-тэгов.
document.tags.tagName
tagName |
Нечувствительное у регистру имя любого тэга HTML, такого как |
Используйте свойство tags для специфицирования стиля HTML-тэгов.
Например, Вы можете специфицировать, что цвет любого тэга H1 будет blue
и что выравнивание тэгов H1 или
H2 будет по центру. См. в объекте Style
описание свойств, которые Вы можете специфицировать для тэгов HTML.
Поскольку все элементы HTML наследуют от тэга BODY, Вы можете
специфицировать стиль по умолчанию документа, установив стили тэга BODY.
Если Вы используете свойство tags внутри тэга STYLE (а
не внутри тэга SCRIPT), Вы можете по выбору опустить document
в синтаксисе
tags. Свойство tags всегда применяется к текущему
объекту
document.
Пример 1. Цвет всех тэгов H1 устанавливается в blue:
<STYLE TYPE="text/javascript">
tags.H1.color="blue"
</STYLE>
Обратите внимание, что Вы можете опустить указание объекта document
в тэге STYLE. Внутри тэга SCRIPT Вы обязаны
специфицировать объект
document таким образом:
<SCRIPT LANGUAGE="JavaScript1.2">
document.tags.H1.color="blue"
</SCRIPT>
Пример 2. Устанавливается универсальное левое поле документа:
document.tags.Body.marginLeft="20pt"
Поскольку все тэги HTML наследуют от BODY, этот пример
устанавливает левое поле для всего документа в 20 пунктов.
document.classes,
document.contextual, document.ids,
StyleСтрока, представляющая название документа.
JavaScript 1.1. Это свойство по умолчанию разрушено/запорчено. О разрушении данных см. книгу .
Свойство title
является отражением значения, специфицируемого между начальным и конечным
тэгами TITLE. Если документ не имеет названия/title, свойство title
будет null.
Здесь значение свойства title присваивается переменной docTitle:
var newWindow = window.open("http://home.netscape.com")
var docTitle = newWindow.document.title
Строка, специфицирующая полный URL документа.
JavaScript 1.1. Это свойство по умолчанию разрушено/запорчено. О разрушении данных см. книгу .
URL это свойство со строковым
значением, содержащее полный URL документа. Оно обычно совпадает с тем, что
установлено в свойстве window.location.href при загрузке документа,
но перенаправление может изменить location.href.
Выводится URL текущего документа:
document.write("The current URL is " + document.URL)
Location.hrefСтрока, специфицирующая цвет посещённых гиперссылок.
Свойство vlinkColor выражается как 16-ричный RGB-триплет или как
строковой литерал (см. книгу ). это свойство является отражением в JavaScript атрибута VLINK
тэга BODY. Значение по умолчанию этого свойства устанавливается
пользователем в диалоге настроек браузера. Вы не можете установить это свойство
после того как исходный HTML отображён.
Если цвет выражается как 16-ричный триплет RGB, Вы обязаны использовать формат
rrggbb. Например, 16-ричные RGB-значения для цвета salmon будут red=FA,
green=80 и blue=72, так что RGB-триплет для salmon
будет
"FA8072".
Здесь цвет посещённых ссылок устанавливается в aqua с использованием строкового литерала:
document.vlinkColor="aqua"
А здесь - с помощью 16-ричного триплета:
document.vlinkColor="00FFFF"
document.alinkColor, document.bgColor,
document.fgColor, document.linkColor
document.heightЗаписывает одно или более выражений HTML в документ специфицированного окна.
document.write(expr1[, ...,exprN])
expr1, ... exprN |
Метод 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')
beginComment="\<!--"
endComment="--\>"
window2.document.write(beginComment)
window2.document.write(" Это текст комментария. ")
window2.document.write(endComment)
Печать, сохранение и просмотр сгенерированного 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>
<BODY>
Hello,
<SCRIPT>document.write(" there.")</SCRIPT>
</BODY>
</HTML>
Если загрузить этот URL в web-браузер, он отобразит:
Hello, there.
Если выбрать View Document Source, браузер отобразит:
<HTML>
<BODY>
Hello,
there.
</BODY>
</HTML>
Если загрузить view-source:file://c|/test.html, браузер отобразит:
<HTML>
<BODY>
Hello,
<SCRIPT>document.write(" there.")</SCRIPT>
</BODY>
</HTML>
О специфицировании view-source: protocol в
объекте location см. объект
Location.
Здесь метод write принимает несколько
аргументов, в том числе строки, числа и переменную:
var mystery = "world"
// Выводится Hello world testing 123
msgWindow.document.write("Hello ", mystery, " testing ", 123)
В следующем примере метод write принимает два аргумента. Первый -
это выражение присвоения, а второй - строковой литерал.
//Выводится Hello world...
msgWindow.document.write(mystr = "Hello ", "world...")
В следующем примере
метод
write принимает единственный аргумент, который является условным
выражением. Если значение переменной age будет меньше 18, метод
выведет "Minor." Если значение age будет больше или равно 18, метод
выведет "Adult."
msgWindow.document.write(status = (age >= 18) ? "Adult" : "Minor")
document.close, document.open,
document.writelnЗаписывает одно или более выражений HTML в документ в специфицированном окне с последующим символом новой строки.
writeln(expr1[, ... exprN])
expr1, ... exprN |
Метод writeln выводит любое количество выражений в документ окна.
Вы можете специфицировать любое выражение JavaScript, включая числа, строки или
логические выражения.
Метод writeln это тот же метод, что и write,
за исключением того, что метод writeln присоединяет символы новой
строки в конец вывода. HTML игнорирует символы новой строки, за исключением
некоторых тэгов, таких как PRE.
Используйте метод writeln внутри тэгов SCRIPT
или в обработчике событий. Обработчики событий выполняются после закрытия
оригинального документа, поэтому метод writeln будет неявно
открывать новый документ типа mimeType
text/html, если Вы не вызываете явно метод document.open в
обработчике события.
В Navigator 3.0 и позднее пользователи могут печатать и сохранять сгенерированный HTML, используя команды меню File браузера.
Все пример для метода write верны также и для
метода writeln.
document.close,
document.open, document.writeДата последнего обновления: 28 мая 1999 года.
Copyright (c) 1999