Содержит информацию о текущем документе и предоставляет методы для отображения 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 или как строковой
литерал (см. книгу 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-триплет или как
строковой литерал (см. книгу 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