Документация DHTML
| Документация DHTML | Документация Smarty | SVG/VML Графика и JavaScript
| Документация bash |
Документ в процессе разработки!
Глава 4.13. Отображение документов в DOM и Gecko
4.13.1. Отображение документов в DOM и обозревателях
DOM 2 не содержит детальной спецификации интерфейсов, связанных с отображением документов, такие спецификации появятся в DOM 3. Он определяет интерфейс AbstractView, предназначенный для установления связи между документом и его отображением, но не описывает его свойств и поведения.
Интерфейс AbstractView является базовым для всех отображений документа (окон, фреймов и т. п.). Он имеет единственное свойство document, возвращающее указатель на объект Document, соответствующий отображаемому документу. Интерфейс Document, в свою очередь, может иметь свойство defaultView типа AbstractView, указывающее на окно отображения документа.
Для практической реализации обозревателей такой спецификации явно недостаточно, поэтому разработчики пока пользуются собственными (нестандартными) спецификациями интерфейса для окон обозревателя. Соответствующий объект традиционно называется window.
Объект window соответствует окну обозревателя. Он позволяет нам получить доступ к документу, загруженному в данное окно, к событиям, которые происходят в окне, и к различным свойствам обозревателя. Этот объект является глобальным объектом клиентской среды JavaScript, поэтому для доступа к его свойствам и методам префикс window. не нужен. Однако, для читаемости кода он может использоваться; помните, что он всегда указывает на текущее окно.
Обычно, объект window создается самим обозревателем при открытии HTML-документа. Если документ не содержит фреймов, то ему соответствует единственный объект window. Если же документ содержит фреймы, то создается один объект window для главного документа и по одному объекту window для каждого из фреймов, которые являются детьми главного окна. При закрытии главного окна его дети закрываются автоматически.
К сожалению, объект window реализован в Internet Explorer и Gecko по-разному. По этой причине мы решили дать для них отдельные описания. Окна Gecko описаны в этой главе, а окна Internet Explorer в следующей.
4.13.2. Окна Gecko: объект window
Объект window в Gecko представляет собой сочетание классического окна Netscape 4.x
с некоторыми возможностями окон Internet Explorer. Приведенное здесь описание основано на
. Полная спецификация интерфейсов Gecko еще далека от
завершения, поэтому некоторые свойства помечены ниже как недокументированные.
Свойство | Изменяемое | Описание |
---|---|---|
_content | Нет | Возвращает указатель на содержание окна. |
appCore | Да | Недокументированное свойство. |
closed | Нет | Проверяет, закрыто ли заданное окно. |
Components | Нет | Коллекция компонентов, установленных в обозревателе. |
controllers | Нет | Коллекция объектов типа XUL Controllers. |
crypto | Нет | Объект, обеспечивающий доступ к методам шифрования. |
defaultStatus | Да | Сообщение по умолчанию в строке состояния обозревателя. |
directories | Нет | Объект barProp, соответствующий панели каталогов обозревателя. |
document | Нет | Объект document, указывающий на HTML-документ, открытый в заданном окне. |
frames | Нет | Коллекция всех объектов window, определенных документом в данном окне. |
history | Нет | Объект history, обеспечивающий доступ к истории просмотра узлов. |
innerHeight | Да | Размер клиентской области окна по вертикали. |
innerWidth | Да | Размер клиентской области окна по горизонтали. |
length | Нет | Количество фреймов в данном окне. |
location | Да | Объект location, содержащий URI документа в данном окне. |
locationbar | Нет | Объект barProp, соответствующий адресной строке обозревателя. |
menubar | Нет | Объект barProp, соответствующий меню обозревателя. |
name | Нет | Имя фрейма или окна. |
navigator | Нет | Объект navigator, содержащий информацию обо обозревателе. |
opener | Да | Ссылка на окно, создавшее данное окно. |
outerHeight | Да | Полный размер окна по вертикали. |
outerWidth | Да | Полный размер окна по горизонтали. |
pageXOffset | Да | Текущая позиция страницы по горизонтали относительно верхнего левого угла окна. |
pageYOffset | Да | Текущая позиция страницы по вертикали относительно верхнего левого угла окна. |
parent | Нет | Доступ к отцу данного окна. |
personalbar | Нет | Объект barProp, соответствующий строке ссылок обозревателя. |
pkcs11 | Нет | Ссылка на объект pkcs11. |
prompter | Да | Ссылка на окно, созданное методом prompt. |
screen | Нет | Объект screen, содержащий сведения о клиентской области отображения. |
screenX | Да | Расстояние от левой границы экрана до левой границы окна обозревателя. |
screenY | Да | Расстояние от верхней границы экрана до верхней границы окна обозревателя. |
scrollbars | Нет | Объект barProp, соответствующий полосам прокрутки окна обозревателя. |
scrollX | Нет | Прокрутка документа по горизонтали. |
scrollY | Нет | Прокрутка документа по вертикали. |
self | Да | Ссылка на текущее окно. |
sidebar | Нет | Ссылка на боковую панель обозревателя. |
status | Да | Текст сообщения в строке состояния обозревателя. |
statusbar | Да | Объект barProp, соответствующий строке состояния обозревателя. |
title | Да | Заголовок окна. |
toolbar | Да | Объект barProp, соответствующий панели кнопок обозревателя. |
top | Нет | Возвращает ссылку на первое окно в иерархии объектов window. |
window | Нет | Ссылка на текущее окно. |
Метод | Описание |
---|---|
alert | Создает диалоговое окно сообщения. |
back | Осуществляет возврат на один шаг по истории просмотра узлов для всех фреймов верхнего окна. |
blur | Заставляет объект потерять фокус и генерирует событие onblur. |
captureEvents | Включает перехват всех событий заданного типа. |
clearInterval | Сбрасывает интервал, заданный методом setInterval. |
clearTimeout | Сбрасывает таймаут, заданный методом setTimeout. |
close | Закрывает текущее окно обозревателя. |
confirm | Создает диалоговое окно подтверждения. |
disableExternalCapture | Запрещает окну с фреймами перехватывать события на страницах, загруженных с других серверов. |
dump | Выводит заданный текст в консоль JavaScript. |
enableExternalCapture | Разрешает окну с фреймами перехватывать события на страницах, загруженных с других серверов. |
escape | Преобразует строку в шестнадцатеричную кодировку. |
focus | Заставляет объект получить фокус и генерирует событие onfocus. |
forward | Осуществляет переход на один шаг вперед по истории просмотра узлов для всех фреймов верхнего окна. |
GetAttention | Вызывает мигание иконки обозревателя. |
getSelection | Возвращает выбранный фрагмент экрана. |
home | Загружает домашнюю страницу пользователя. |
moveBy | Сдвигает окно на заданную величину. |
moveTo | Сдвигает окно в заданную позицию. |
open | Создает новое окно. |
Печатает документ, открытый в заданном окне. | |
prompt | Создает диалоговое окно для ввода пользователем строки. |
releaseEvents | Отключает перехват событий заданного типа. |
resizeBy | Изменяет размеры окна на заданную величину. |
resizeTo | Задает новые размеры окна. |
routeEvent | Пропускает перехваченное событие вниз по иерархии объектов. |
scroll | Прокручивает окно до заданной позиции. |
scrollBy | Прокручивает окно на заданную величину. |
scrollByLines | Прокручивает окно на заданное число строк. |
scrollByPages | Прокручивает окно на заданное число страниц. |
scrollTo | Прокручивает окно до заданной позиции. |
setCursor | Изменяет форму курсора. |
setInterval | Задает периодическое вычисление выражения всякий раз, когда истечет данный интервал. |
setTimeout | Задает вычисление выражения, когда истечет данный таймаут. |
sizeToContent | Изменяет размер окна соответственно его содержимому. |
stop | Останавливает загрузку в окно. |
unescape | Преобразует шестнадцатеричную кодировку в строку. |
updateCommands | Недокументировано. |
Событие | Описание |
---|---|
onabort | Генерируется при прерывании загрузки страницы. |
onblur | Генерируется, когда окно теряет фокус. |
onchange | Генерируется при изменении значения элемента формы в окне. |
onclick | Генерируется при щелчке кнопкой мыши. |
onclose | Генерируется при закрытии окна. |
ondragdrop | Генерируется при перетаскивании внешнего объекта в окно. |
onerror | Генерируется при возникновении ошибки в процессе загрузки документа. |
onfocus | Генерируется, когда окно получает фокус. |
onkeydown | Генерируется при нажатии клавиши. |
onkeypress | Генерируется при удержании нажатой клавиши. |
onkeyup | Генерируется при отпускании клавиши. |
onload | Генерируется сразу после загрузки документа. |
onmousedown | Генерируется при нажатии кнопки мыши. |
onmousemove | Генерируется при движении курсора мыши по элементу в окне. |
onmouseout | Генерируется при покидании курсором мыши элемента в окне. |
onmouseover | Генерируется при попадании курсора мыши на элемент в окне. |
onmouseup | Генерируется при отпускании кнопки мыши. |
onpaint | Генерируется при отображении содержимого окна. |
onreset | Генерируется при инициализации формы в окне. |
onresize | Генерируется перед изменением размеров окна. |
onscroll | Генерируется при прокрутке содержимого окна. |
onselect | Генерируется, когда пользователь выделяет текст в текстовом поле. |
onsubmit | Генерируется при пересылке формы в окне. |
onunload | Генерируется перед завершением выгрузки документа. |
Свойство _content
Синтаксис: window._content Изменяемое: нет
Значением свойства _content является указатель на фрейм или иной объект в окне, помеченный атрибутом type="content-primary". Если такого элемента нет, то возращается указатель на само окно window. Пример: следующий фрагмент HTML-документа выведет на экран текст blur.htm:
<BODY onload="alert(window._content.location.href)"> <IFRAME type="content-primary" src="blur.htm"></IFRAME> . . .
Свойство appCore
Синтаксис: window.appCore Изменяемое: нет
Недокументированное свойство, возвращает объект с интерфейсом nsIBrowserInstance.
О "прикладном ядре" см. .
Свойство closed
Синтаксис: window.closed Изменяемое: нет
Значением свойства closed является true, если окно window закрыто, и false, если нет. Пример:
if (!parent.closed) parent.close();
Свойство Components
Синтаксис: window.Components Изменяемое: нет
Значением свойства Components является коллекция всех компонентов, установленных в обозревателе. Пока недокументировано.
Свойство controllers
Синтаксис: window.controllers Изменяемое: нет
Значением свойства controllers является коллекция объектов типа XUL Controllers. Пока недокументировано.
Свойство crypto
Синтаксис: window.crypto Изменяемое: нет
Значением этого свойства является указатель на объект crypto, обеспечивающий шифрование данных. Пока недокументировано.
Свойство defaultStatus
Синтаксис: window.defaultStatus Изменяемое: да
Свойство defaultStatus возвращает или устанавливает текст сообщения, выводимый по умолчанию в строке состояния, которая расположена в нижней части окна обозревателя. Не следует путать его со свойством status, которое содержит текст, выводимый в строке состояния при возникновении определенных событий. Пример:
var d = new Date(); defaultStatus = "Сегодня: " + d.toLocaleDateString();
Свойство directories
Синтаксис: window.directories Изменяемое: нет
Значением этого свойства является указатель на объект barProp, соответствующий панели каталогов обозревателя. Этот объект имеет единственное свойство visible, доступное для чтения и записи и указывающее на состояние панели (true, если панель видна, и false, если она скрыта). Для изменения этого свойства необходима привилегия UniversalBrowserWrite. Пример:
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite"); window.directories.visible = true;
Свойство document
Синтаксис: window.document Изменяемое: нет
Свойство document возвращает указатель на HTML-документ, открытый в данном окне. Пример:
alert(window.document.title)
.
Свойство frames
Синтаксис: window.frames Изменяемое: нет
Свойство frames возвращает коллекцию всех объектов window, определенных документом, ассоциированным с данным окном. Иными словами:
- Если тело документа заключено в элемент BODY, то коллекция содержит по одному окну для каждого элемента IFRAME в документе.
- Если тело документа заключено в элемент FRAMESET, то коллекция содержит по одному окну для каждого элемента FRAME в документе.
Порядок окон в коллекции определяется порядком элементов FRAME/IFRAME в тексте документа. Пример:
var frm = window.parent.frames; for (var i = 0; i < frm.length; i++) alert(frm[i].name);
Свойство history
Синтаксис: window.history Изменяемое: нет
Значением свойства history является объект, содержащий информацию об узлах, посещенных пользователем в данном окне (история просмотра).
Этот объект имеет четыре свойства, доступных только для чтения:
Свойство | Описание |
---|---|
current | URI текущего документа. Требует привилегии UniversalBrowserRead. |
length | Количество объектов в коллекции |
next | URI следующего документа в истории. Требует привилегии UniversalBrowserRead. |
previous | URI предыдущего документа в истории. Требует привилегии UniversalBrowserRead. |
и следующие методы:
Метод | Описание |
---|---|
back(число?) | Эквивалентен нажатию кнопки обозревателя Back заданное число раз. Если число
опущено, то загружается предыдущий узел, т. е. back() эквивалентно go(-1) .
Попытка выхода за пределы истории игнорируется, и пользователь остается на текущей странице. |
Эквивалентен нажатию кнопки обозревателя Forward заданное число раз. Если число
опущено, то загружается следующий узел, т. е. forward() эквивалентно go(1) .
Попытка выхода за пределы истории игнорируется, и пользователь остается на текущей странице. |
|
go(позиция) | Загружает узел, заданный аргументом позиция. Если позиция это число, то она задает положение узла в истории относительно текущей страницы. Если позиция это строка, то она должна задавать полный или частичный URI уэла, содержащегося в истории. Если заданный узел не найден или сделана попытка выхода за пределы истории, то пользователь остается на текущей странице. |
Пример чтения URI предыдущего документа в истории просмотра:
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); alert(window.history.previous);
Свойство innerHeight
Синтаксис: window.innerHeight Изменяемое: да
Значением свойства innerHeight является высота клиентской области окна обозревателя.
Пример: window.innerHeight = 400
. Ср. со свойством outerHeight.
Свойство innerWidth
Синтаксис: window.innerWidth Изменяемое: да
Значением свойства innerWidth является ширина клиентской области окна обозревателя.
Пример: window.innerWidth = 700
. Ср. со свойством outerWidth.
Свойство length
Синтаксис: window.length Изменяемое: нет
Это свойство возвращает количество фреймов в данном окне, т. е. количество содержащихся в нем элементов FRAME и IFRAME.
Свойство location
Синтаксис: window.location Изменяемое: нет
Это свойство возвращает указатель на объект location, содержащий информацию об URI документа, открытого в данном окне. Напомним, что в общем виде URI имеет вид:
протокол://хост:порт/путь#закладка?запрос
Объект location содержит названные фрагменты URI как свойства, доступные для чтения и записи:
Свойство | Описание |
---|---|
hash | Закладка, т. е. часть URI, следующая за символом "#" (включая его). |
host | Если port не равно null, то эта строка имеет вид hostname:port, в противном случае совпадает с hostname. |
hostname | Имя хоста и домена или IP-адрес. |
href | Полный URI документа. |
pathname | Имя файла или пути. |
port | Номер порта, указанный в URI документа. |
protocol | Протокол, указанный в URI документа. |
search | Запрос, т. е. часть URI, следующая за символом "?" (включая его). |
Кроме того, данный объект имеет два метода:
Метод | Описание |
---|---|
Перезагружает текущий документ. Аргумент указывает способ перезагрузки: true перезагрузка с сервера, false перезагрузка из кэш-памяти. Если аргумент опущен, то он принимается равным false. | |
Заменяет текущий документ на документ с заданным URI. При этом текущий документ удаляется из истории просмотра. |
Мы можем обращаться к объекту location и как к строке, например window.location = "http://mywww.com/newpage.htm"
приведет к загрузке документа с заданным URI. Такое обращение эквивалентно чтению или записи свойства location.href.
Свойство locationbar
Синтаксис: window.locationbar Изменяемое: нет
Значением этого свойства является указатель на объект barProp, соответствующий адресной строке обозревателя. Этот объект имеет единственное свойство visible, доступное для чтения и записи и указывающее на состояние панели (true, если адресная строка видна, и false, если она скрыта). Для изменения этого свойства необходима привилегия UniversalBrowserWrite. Пример:
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite"); window.locationbar.visible = true;
Свойство menubar
Синтаксис: window.menubar Изменяемое: нет
Значением этого свойства является указатель на объект barProp, соответствующий меню обозревателя. Этот объект имеет единственное свойство visible, доступное для чтения и записи и указывающее на состояние панели (true, если меню видно, и false, если оно скрыто). Для изменения этого свойства необходима привилегия UniversalBrowserWrite. Пример:
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite"); window.menubar.visible = true;
Свойство name
Синтаксис: window.name Изменяемое: нет
Это свойство позволяет считывать и устанавливать имя окна или фрейма. Его значение задается в формате имени фрейма HTML. Во избежание двусмысленности это свойство всегда следует использовать с префиксом window. Примеры:
window.name = "Window1"; // задание имени окна parent.frames[0].name = "LetfFrame"; // задание имени фрейма window.open("file.htm", "_blank"); // открытие документа в новом окне
Свойство navigator
Синтаксис: window.navigator Изменяемое: нет
Значением свойства navigator является объект, содержащий информацию об обозревателе. Он имеет следующие свойства, доступные только для чтения:
Свойство | Описание | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
appCodeName | Кодовое имя обозревателя. Всегда равно "Mozilla". | ||||||||||||||
appName | Название обозревателя. Всегда равно "Netscape". | ||||||||||||||
appVersion | Версия обозревателя и имя платформы, например, "5.0 (Windows; en-US)". |
||||||||||||||
language | Язык пользовательского интерфейса обозревателя (см. Таблицу П8.1). | ||||||||||||||
cookieEnabled | true, если куки на стороне клиента разрешены, и false, если запрещены. | ||||||||||||||
mimeTypes | Возвращает коллекцию объектов типа MimeType, соответствующих типам MIME,
поддерживаемых обозревателем. Каждый такой объект имеет следующие свойства:
|
||||||||||||||
oscpu | Операционная система клиента:
|
||||||||||||||
platform | Платформа клиента:
|
||||||||||||||
plugins | Коллекция всех объектов Plugin, установленных в обозревателе.
Объект Plugin описывает подключаемый модуль, который отображает файлы определенных типов.
Он является массивом, содержащим по одному элементу для каждого поддерживаемого им типа. Он имеет следующие свойства:
Кроме того, данная коллекция имеет метод refresh(flag), который обновляет массив установленных подгружаемых модулей. Если flag равно true, то все открытые документы будут перезагружены с учетом вновь установленных модулей. |
||||||||||||||
product | Название продукта. Всегда равно "Gecko". | ||||||||||||||
productSub | Номер сборки продукта, например "20001222". | ||||||||||||||
securityPolicy | Политика безопасности, недокументировано. | ||||||||||||||
userAgent | Информация об обозревателе в формате поля User-Agent заголовка запроса HTTP
(см. Таблицу П5.2), например, "Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.2) Gecko/20010725 Netscape6/6.1". |
||||||||||||||
vendor | Название поставщика, например "Netscape6". | ||||||||||||||
vendorSub | Номер версии поставщика, например "6.1". |
Кроме того, данный объект имеет следующие методы:
Метод | Описание | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
javaEnabled() | Возвращает true, если Java-аплеты в обозревателе разрешены, и false в противном случае. | ||||||||||||||
preference(name, value?) | Если аргумент value не задан, возвращает текущую настройку обозревателя с именем name
(для этого требуется привилегия UniversalPreferencesRead). Если аргумент value задан, то настройка с именем
name получает значение value и это значение возвращается в качестве результата
(для этого требуется привилегия UniversalPreferencesWrite). Имена некоторых настроек (полный перечень в сценариях подкаталога DEFAULTS\PREF
каталога, в котором установлены Netscape 6 или Mozilla):
|
||||||||||||||
Возвращает true, если в обозревателе разрешена защита данных (data tainting), и false в противном случае. |
Свойство opener
Синтаксис: window.opener Изменяемое: да
Это свойство возвращает ссылку на объект window, создавший данное окно; если окно было открыто обозревателем, а не методом open, то его значение null. Мы можем присвоить этому свойству ссылку на любое окно.
Свойство outerHeight
Синтаксис: window.outerHeight Изменяемое: да
Значением свойства outerHeight является высота окна обозревателя.
Пример: window.outerHeight = window.screen.availHeight
. Ср. со свойством innerHeight.
Свойство outerWidth
Синтаксис: window.outerWidth Изменяемое: да
Значением свойства outerWidth является ширина окна обозревателя.
Пример: window.outerWidth = window.screen.availWidth
. Ср. со свойством innerWidth.
Свойство pageXOffset
Синтаксис: window.pageXOffset Изменяемое: да
Значением свойства pageXOffset является положение страницы по горизонтали в пикселях относительно верхнего левого угла клиентской области окна. Это свойство позволяет узнать текущее положение страницы, прокручиваемой горизонтально, перед вызовом метода scrollTo или scrollBy.
Свойство pageYOffset
Синтаксис: window.pageYOffset Изменяемое: да
Значением свойства pageYOffset является положение страницы по вертикали в пикселях относительно верхнего левого угла клиентской области окна. Это свойство позволяет узнать текущее положение страницы, прокручиваемой вертикально, перед вызовом метода scrollTo или scrollBy.
Свойство parent
Синтаксис: window.parent Изменяемое: нет
Это свойство возвращает ссылку на объект window, соответствующий отцу данного окна.
Иными словами, для окна, созданного элементом FRAME,
оно возвращает ссылку на окно, содержащее соответствующий элемент FRAMESET,
а для остальных окон ссылку на самого себя (ср. свойство top). Пример: alert(parent.location)
.
Свойство personalbar
Синтаксис: window.personalbar Изменяемое: нет
Значением этого свойства является указатель на объект barProp, соответствующий панели личных ссылок обозревателя. Этот объект имеет единственное свойство visible, доступное для чтения и записи и указывающее на состояние панели (true, если она видна, и false, если она скрыта). Для изменения этого свойства необходима привилегия UniversalBrowserWrite. Пример:
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite"); window.personalbar.visible = true;
Свойство pkcs11
Синтаксис: window.pkcs11 Изменяемое: нет
Это свойство возвращает ссылку на объект pkcs11, который используется для установки драйверов и
других программ, использующих протокол PKCS (Public-Key Cryptography Standard) #11. Этот стандарт
разработан в RSA Laboratories для управления криптографическим шифрованием передаваемых данных. Подробнее см.
и файл nsIDOMPkcs11.idl в исходных текстах Mozilla.
Свойство prompter
Синтаксис: window.prompter Изменяемое: нет
Это свойство возвращает ссылку на объект window, созданный методом prompt или null, если такого окна нет.
Свойство screen
Синтаксис: window.screen Изменяемое: нет
Значением свойства screen является объект, содержащий информацию об экране клиента. Он имеет следующие свойства:
Свойство | Изменяемое | Описание |
---|---|---|
availHeight | Нет | Высота рабочей области экрана в пикселях (исключая высоту панели задач). Для экрана 600x800 обычно равна от 570 до 600. |
availLeft | Нет | Первый доступный слева пиксель экрана (availLeft + availWidth = width). |
availTop | Нет | Первый доступный сверху пиксель экрана (availTop + availHeight = height). |
availWidth | Нет | Ширина рабочей области экрана в пикселях (исключая ширину панели задач). Для экрана 600x800 обычно равна от 730 до 800. |
colorDepth | Нет | Если используется цветовая палитра, то это свойство возвращает ее глубину в битах на пиксель. В противном случае совпадает с pixelDepth. |
height | Нет | Высота экрана в пикселях. Например, для экрана 600x800 равна 600. |
left | Да | Расстояние в пикселях от левого края клиентской области окна обозревателя до левого края экрана. |
pixelDepth | Нет | Число битов на пиксель при отображении цветов. Типичные значения: 8 (256 цветов), 16 (High Color), 24 (True Color). |
top | Да | Расстояние в пикселях от верхнего края клиентской области окна обозревателя до верхнего края экрана. |
width | Нет | Ширина экрана в пикселях. Например, для экрана 600x800 равна 800. |
Следующий пример
alert("Экран: "+screen.width+" x "+screen.height+" x "+screen.colorDepth +" бита");
выведет окно сообщения с текстом вида Экран: 800 x 600 x 24 бита.
Свойство screenX
Синтаксис: window.screenX Изменяемое: да
Значением свойства screenX является расстояние в пикселях от левой границы экрана до левой границы окна обозревателя. Для изменения этого свойства необходима привилегия UniversalBrowserWrite. Пример:
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite"); window.screenX = 20;
Свойство screenY
Синтаксис: window.screenY Изменяемое: да
Значением свойства screenY является расстояние в пикселях от верхней границы экрана до верхней границы окна обозревателя. Для изменения этого свойства необходима привилегия UniversalBrowserWrite. Пример:
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite"); window.screenY = 10;
Свойство scrollbars
Синтаксис: window.scrollbars Изменяемое: нет
Значением этого свойства является указатель на объект barProp, соответствующий полосам прокрутки обозревателя. Этот объект имеет единственное свойство visible, доступное для чтения и записи и указывающее на состояние панели (true, если полосы прокрутки видны, и false, если они скрыты). Для изменения этого свойства необходима привилегия UniversalBrowserWrite. Пример:
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite"); window.scrollbars.visible = true;
Свойство scrollX
Синтаксис: window.scrollX Изменяемое: нет
Значением свойства scrollX является количество пикселей, на которое документ прокручен по горизонтали. Следующий пример прокручивает документ к его началу, если он был прокручен по горизонтали:
if (window.scrollX) scroll(0, 0);
Свойство scrollY
Синтаксис: window.scrollY Изменяемое: нет
Значением свойства scrollY является количество пикселей, на которое документ прокручен по вертикали. Следующий пример прокручивает документ к его началу, если он был прокручен по вертикали:
if (window.scrollY) scroll(0, 0);
Свойство self
Синтаксис: window.self Изменяемое: нет
Это свойство возвращает ссылку на текущий объект window, т. е. на самого себя.
Свойство sidebar
Синтаксис: window.sidebar Изменяемое: нет
Значением этого свойства является указатель на недокументированный объект с интерфейсом nsISidebar, соответствующий боковой панели обозревателя (его описание в Gecko DOM window Reference не соответствует действительности). Мы обнаружили, что этот объект лишен свойств, но имеет четыре метода:
Метод | Описание |
---|---|
addPanel(panel) | Недокументировано. |
addSearchEngine(engineURI, iconURI, engineName, categoryName) | Запрашивает подтверждение на доавление к боковой панели поисковой системы. Аргументы: engineURI URI поисковой системы, iconURI URI ее иконки, engineName имя, которое будет присвоено поисковой системе, categoryName название категории поиска. |
Недокументировано. | |
setWindow(windowFrame) | Недокументировано. |
Этот объект еще находится в стадии разработки, поэтому подробно мы опишем его позже. Пример добавления поисковой системы к боковой панели:
window.sidebar.addSearchEngine("http://www.mozilla.org/projects/search/mozilla.src", "http://www.mozilla.org/projects/search/mozilla.gif", "mozilla.org", "Web");
Свойство status
Синтаксис: window.status Изменяемое: да
Свойство status возвращает или устанавливает текст сообщения, выводимый в строке состояния, которая расположена в нижней части окна обозревателя. Не следует путать его со свойством defaultStatus, которое содержит текст, выводимый в строке состояния по умолчанию. Пример:
<BODY onload="window.status='Страница загружена!'">
Свойство statusbar
Синтаксис: window.statusbar Изменяемое: нет
Значением этого свойства является указатель на объект barProp, соответствующий строке состояния обозревателя. Этот объект имеет единственное свойство visible, доступное для чтения и записи и указывающее на состояние панели (true, если строка состояния видна, и false, если она скрыта). Для изменения этого свойства необходима привилегия UniversalBrowserWrite. Пример:
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite"); window.statusbar.visible = true;
Свойство title
Синтаксис: window.title Изменяемое: да
Это свойство возвращает или задает заголовок окна. Если заголовок окна не был ранее задан, то оно возвращает undef. Текст заголовка хранится в данном свойстве, но нигде не отображается. Пример:
window.title = "Мое окно"; alert(window.title);
Свойство toolbar
Синтаксис: window.toolbar Изменяемое: нет
Значением этого свойства является указатель на объект barProp, соответствующий панели кнопок обозревателя. Этот объект имеет единственное свойство visible, доступное для чтения и записи и указывающее на состояние панели (true, если она видна, и false, если она скрыта). Для изменения этого свойства необходима привилегия UniversalBrowserWrite. Пример:
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite"); window.toolbar.visible = true;
Свойство top
Синтаксис: window.top Изменяемое: нет
Это свойство возвращает ссылку на первое окно в иерархии объектов window, т. е. на объект, у которого свойство parent равно самому объекту.
Свойство window
Синтаксис: window.window Изменяемое: нет
Это свойство возвращает ссылку на текущий объект window, т. е. на самого себя (синоним свойства self).
Метод alert
Синтаксис: window.alert(текст?) Аргументы: текст строковое значение
Метод alert создает диалоговое окно сообщения и, если текст задан, выводит его в это
окно. Например, оператор alert("Здравствуйте!")
выведет на экран следующее окно:

Метод back
Синтаксис: window.back()
Метод back эквивалентен нажатию кнопки обозревателя Back (Назад). Он возвращает нас на один шаг в истории просмотра самого верхнего окна в иерархии окон, в отличие от метода history.back(), который делает шаг назад в истории просмотра текущего окна или фрейма.
Метод blur
Синтаксис: window.blur()
Метод blur заставляет окно потерять фокус и генерирует событие onblur. Это программный эквивалент удалению пользователем фокуса с текущего окна.
Метод captureEvents
Синтаксис: window.captureEvents(Event.тип) Аргументы: тип тип события
Метод captureEvents включает перехват заданным окном всех событий заданного типа. Тип события задается одним из следующих ключевых слов, набранных в любом регистре:
abort | error | mousedown | reset |
blur | focus | mousemove | resize |
change | keydown | mouseout | select |
click | keypress | mouseover | submit |
dblclick | keyup | mouseup | unload |
dragdrop | load | move |
События обычно проходят через обработчики событий окна и документа прежде, чем попасть к обработчику объекта, сгенерировавшему это событие. Данный метод перехватывает все события указанного типа и не пропускает их к следующим объектам в иерархии. Для того, чтобы восстановить обычный порядок распространения событий, необходимо вызывать метод releaseEvents. Пример перехвата всех щелчков мышью в окне:
<HTML> <HEAD> <SCRIPT> function reg() { window.captureEvents(Event.CLICK); window.onclick = new Function("alert('hit')"); } </SCRIPT> </HEAD> <BODY onload="reg()"> <BUTTON>Test</BUTTON> </BODY> </HTML>
Мы можем задать в вызове этого метода сразу несколько типов событий, разделяя их символом "|", например:
window.captureEvents(Event.KEYPRESS | Event.KEYDOWN | Event.KEYUP);
Метод clearInterval
Синтаксис: window.clearInterval(таймер) Аргументы: таймер целое значение
Этот метод останавливает таймер, созданный методом setInterval. См. подробности и пример в описании этого метода.
Метод clearTimeout
Синтаксис: window.clearTimeout(таймер) Аргументы: таймер целое значение
Этот метод останавливает таймер, созданный методом setTimeout. См. подробности и пример в описании этого метода.
Метод close
Синтаксис: window.close()
Метод close закрывает заданное окно обозревателя. Если окно было создано программно, то оно просто закрывается. Если же окно было создано обозревателем, то перед его закрытием выводится диалоговое окно, запрашивающее подтверждение действия. Если, однако, в истории просмотра окна только один документ (текущий), то окно закрывается без запроса подтверждения. Такое решение было принято для поддержки временных окон, которые открывают другие окна, а затем закрываются. Для того, чтобы закрывать любое окно без подтверждения, необходима привилегия UniversalBrowserWrite. Пример:
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite"); self.close();
В обработчиках событий нужно полностью указывать вызов window.close, иначе будет вызван неявно подразумеваемый метод document.close.
Метод confirm
Синтаксис: window.confirm(текст?) Аргументы: текст строковое значение Результат: логическое значение
Метод confirm создает диалоговое окно подтверждения и, если текст задан, выводит его в это
окно. Он возвращает true, если пользователь нажал кнопку OK, и false, если
пользователь нажал кнопку Cancel. Например, оператор confirm("Отформатировать системный диск?")
выведет на экран следующее окно:

Метод disableExternalCapture
Синтаксис: window.disableExternalCapture()
Этот метод запрещает перехват внешних событий, разрешенных методом enableExternalCapture. См. подробности в описании этого метода.
Метод dump
Синтаксис: window.dump(текст) Аргументы: текст строковое значение
Утверждается, что этот метод выводит заданный текст в консоль JavaScript обозревателя и предназначен для вывода отладочных сообщений. Мне этого добиться не удалось: метод выполнялся без ошибки, но в консоль не выводил ничего.
Метод enableExternalCapture
Синтаксис: window.enableExternalCapture()
Этот метод используется в окнах, содержащих фреймы, для того, чтобы разрешить данному окну перехват событий, сгенерированных фреймами, в которые загружены документы с других серверов. Для перехвата внешних событий какого-либо типа вам нужно получить привилегию UniversalBrowserWrite, вызвать этот метод, а затем вызвать метод captureEvents, задав ему тип перехватываемых событий. Пример:
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite"); enableExternalCapture(); captureEvents(Event.CLICK);
Метод escape
Синтаксис: window.escape(строка) Аргументы: строка любое строковое выражение Результат: новый строковый объект
Метод escape преобразует входную строку в шестнадцатеричную кодировку.
При этом все символы, не являющиеся символами базовой латиницы, заменяются на их шестнадцатеричные
escape-коды %xx в текущей кодировке операционной системы. Например, оператор document.write(escape("Строка"))
выведет в русской версии Windows на экран обозревателя строку %D1%F2%F0%EE%EA%E0.
Обратное преобразование строки производится методом unescape.
Обратите внимание, что этот метод перекрывает метод escape глобального объекта JavaScript, который кодирует символы шестнадцатеричными кодами Unicode.
Метод focus
Синтаксис: window.focus()
Метод focus заставляет окно получить фокус и генерирует событие onfocus. Учтите, что окно не может получить фокус, пока документ не будет полностью в него загружен.
Метод forward
Синтаксис: window.forward()
Метод forward эквивалентен нажатию кнопки обозревателя Forward (Вперед). Он переводит нас на один шаг вперед в истории просмотра самого верхнего окна в иерархии окон, в отличие от метода history.forward(), который делает шаг вперед в истории просмотра текущего окна или фрейма.
Метод GetAttention
Синтаксис: window.GetAttention()
Метод GetAttention вызвает мигание иконки обозревателя до тех пор, пока он не будет активизирован. В Windows и Linux мигает иконка в панели задач, в MacOS — в правом верхнем углу системной панели. Пример:
setTimeout("window.GetAttention()", 3000);
Метод getSelection
Синтаксис: window.getSelection()
Этот метод возвращает указатель на недокументированный объект с интерфейсом nsISelection, соответствующий выделенному пользователем фрагменту документа. Если выбранный фрагмент является текстом, то возвращаемый объект автоматически преобразуется в строку. Пример:
alert(window.getSelection());
Метод home
Синтаксис: window.home()
Метод home загружает в окно домашнюю страницу пользователя, указанную в настройках обозревателя. Его вызов эквивалентен нажатию кнопки обозревателя Home (Домой).
Метод moveBy
Синтаксис: window.moveBy(x, y) Аргументы: x, y целые значения
Этот метод перемещает окно на x пикселей по горизонтали и y пикселей по вертикали.
Пример: moveBy(10, -5)
.
Метод moveTo
Синтаксис: window.moveTo(x, y) Аргументы: x, y целые значения
Этот метод перемещает окно в положение, при котором его верхний левый угол отстоит от левого верхнего угла экрана на x пикселей по горизонтали и y пикселей по вертикали. Следующий пример задает размеры окна и центрирует его на экране:
var w = 200, h = 200; resizeTo(w, h); moveTo((screen.width-w)/2, (screen.height-h)/2);
Метод open
Синтаксис: window.open(uri, имя [, свойства?]) Аргументы: uri, имя, свойства строковые значения Результат: объект window
Метод open создает новое окно обозревателя и возвращает ссылку на него. Аргумент uri задает URI открываемого документа, аргумент имя имя фрейма для нового окна, которое может использоваться в атрибуте target элементов A и FORM. Необязательный аргумент свойства представляет собой список свойств нового окна, разделенных запятыми. В нем мы можем задать следующие свойства:
Свойство | Описание |
---|---|
copyhistory | Копировать историю просмотра текущего окна. |
dependent | Создать окно, зависимое от родительского окна. Зависимые окна закрываются при закрытии родительского окна и не показываются в панели задач Windows. |
directories | Показывать панель каталогов обозревателя. |
height | Высота окна в пикселях. |
location | Показывать адресную строку обозревателя. |
menubar | Показывать меню обозревателя. |
resizable | Пользователь может изменять размеры окна. |
screenX | Расстояние в пикселях от левого края экрана по горизонтали. |
screenY | Расстояние в пикселях от верхнего края экрана по вертикали. |
scrollbars | Показывать полосы прокрутки окна. |
status | Показывать строку состояния обозревателя. |
toolbar | Показывать панель кнопок обозревателя. |
width | Ширина окна в пикселях. |
Свойствам width, height, screenX и screenY должны быть присвоены числовые значения. Остальные свойства являются логическими; им можно присваивать значения yes или no (или, что то же самое, 1 или 0). Включение в список только имени свойства равносильно присвоению ему значения yes. Пример:
var newWin = window.open("test.htm", "win2", "toolbar,status=no,width=200,height=200");
Метод print
Синтаксис: window.print()
Метод print выводит содержимое данного окна или фрейма на печать.
Метод prompt
Синтаксис: window.prompt([текст?], [значение?]) Аргументы: текст, значение строковые значения Результат: строковое или целое значение
Метод prompt создает диалоговое окно, состоящее из строки сообщения и поля ввода.
Если текст задан, он выводится в качестве сообщения. Значение задает начальное
значение поля ввода;если оно опущено, то равно undefined, и поле ввода пусто.
Например, оператор prompt("Введите ваше имя", "")
выведет на экран следующее
окно:

Если пользователь нажмет кнопку Cancel, то этот метод вернет значение null; если будет нажата кнопка OK, то метод вернет строковое или целое значение, введенное пользователем в поле ввода.
Метод releaseEvents
Синтаксис: window.releaseEvents(Event.тип) Аргументы: тип тип события
Метод releaseEvents отменяет перехват событий заданного типа, включенный методом captureEvents. См. подробности в описании этого метода. Пример:
window.releaseEvents(Event.KEYPRESS | Event.KEYDOWN | Event.KEYUP);
Метод resizeBy
Синтаксис: window.resizeBy(x, y) Аргументы: x, y целые значения
Этот метод изменяет размеры окна на x пикселей по горизонтали и y пикселей по вертикали.
Пример: resizeBy(10, -5)
.
Метод resizeTo
Синтаксис: window.resizeTo(x, y) Аргументы: x, y целые значения
Этот метод задает новые размеры окна, равными x пикселей по горизонтали и y пикселей по вертикали. Пример см. в описании метода moveTo.
Метод routeEvent
Синтаксис: window.routeEvent(evt) Аргументы: evt объект типа Event Результат: логическое значение
Этот метод пропускает перехваченное событие evt вниз по иерархии объектов. При этом событие передается следующему в иерархии за window объекту, у которого включен перехват данного типа событий. Подробно о механизме перехвата событий см. п. 4.11.1.2.
Метод scroll
Синтаксис: window.scroll(x, y) Аргументы: x, y целые значения
Это устаревший синоним метода scrollTo.
Метод scrollBy
Синтаксис: window.scrollBy(x, y) Аргументы: x, y целые значения
Этот метод прокручивает документ в окне на x пикселей по горизонтали и y пикселей по вертикали относительно
текущей позиции документа в окне. Прокрутка производится только в том случае, когда новая позиция в окне не видна.
Пример: scrollBy(10, -5)
.
Метод scrollByLines
Синтаксис: window.scrollByLines(n) Аргументы: n целое значение
Этот метод прокручивает документ в окне на n строк относительно текущей позиции
документа в окне. Прокрутка производится только в том случае, когда новая позиция в окне не видна.
Пример: scrollByLines(10)
.
Метод scrollByPages
Синтаксис: window.scrollByPages(n) Аргументы: n целое значение
Этот метод прокручивает документ в окне на n страниц относительно текущей позиции
документа в окне. Прокрутка производится только в том случае, когда новая позиция в окне не видна.
Пример: scrollByPages(-1)
.
Метод scrollTo
Синтаксис: window.scrollTo(x, y) Аргументы: x, y целые значения
Этот метод прокручивает документ в окне так, чтобы верхний левый угол окна отстоял от начала документа
на x пикселей по горизонтали и y пикселей по вертикали. Прокрутка производится только
в том случае, когда новая позиция в окне не видна. Пример: scrollTo(0, 20)
.
Метод setCursor
Синтаксис: window.setCursor(форма) Аргументы: форма строковое значение
Этот метод изменяет форму экранного курсора. Аргумент форма может принимать следующие значения:
"auto" | Форма курсора определяется обозревателем в зависимости от содержимого элемента. |
"crosshair" | Перекрестье. |
"default" | Курсор операционной системы по умолчанию. В Windows это стрелка. |
"help" | Вопросительный знак, указывающий, что для данного элемента можно получить справку. |
"move" | Скрещенные стрелки, указывающие на то, что что-то должно переместиться. |
"pointer" | Кисть руки, указывающая на гиперссылку. |
"*-resize" | Стрелка, указывающая на сдвигаемую границу; * задает направление сдвига (n = север, s = юг, w = запад, e = восток, nw =северо-запад и т. п.). |
"text" | Указатель на редактируемый текст в форме буквы I. |
"wait" | Песочные часы, указывающие на то, что программа занята, и пользователь должен подождать. |
Пример: setCursor("nw-resize")
.
Метод setInterval
Синтаксис: window.setInterval(выражение, интервал) window.setInterval(функция, интервал, арг1?, , аргN?) Аргументы: выражение строковое значение функция имя функции арг1, , аргN значения аргументов функции интервал числовое значение Результат: целое значение
Этот метод запускает выполнение определенного действия каждый раз, когда истечет интервал, заданный в миллисекундах. Действие задается либо строкой, содержащей выражение JavaScript, либо именем функции с необязательным набором аргументов. Метод возвращает целое значение (идентификатор таймера), которое может быть передано методу clearInterval для остановки данного таймера, т. е. прекращения периодического выполнения данного действия. Заданное действие будет выполняться до вызова clearInterval или до закрытия данного окна.
Следующий пример использует метод setInterval для вывода текущего времени в строке состояния обозревателя каждую секунду:
<HTML> <HEAD> <SCRIPT> var timerID = null; function stopclock() { if (timerID) clearInterval(timerID); timerID = null; } function startclock() { stopclock(); timerID = setInterval(showtime, 1000); // или setInterval("showtime()", 1000) } function showtime() { window.status = (new Date()).toLocaleTimeString(); } </SCRIPT> </HEAD> <BODY onload="startclock()"> </BODY> </HTML>
Метод setTimeout
Синтаксис: window.setTimeout(выражение, интервал) window.setTimeout(функция, интервал, арг1?, , аргN?) Аргументы: выражение строковое значение функция имя функции арг1, , аргN значения аргументов функции интервал числовое значение Результат: целое значение
Этот метод вызывает разовое выполнение определенного действия, когда истечет интервал, заданный в миллисекундах. Действие задается либо строкой, содержащей выражение JavaScript, либо именем функции с необязательным набором аргументов. Метод возвращает целое значение (идентификатор таймера), которое может быть передано методу clearTimeout для остановки данного таймера, т. е. для отмены выполнения заданного действия. Действие будет выполнено по истечении заданного интервала времени, если до этого не будет вызван метод clearTimeout или закрыто данное окно.
Следующий пример использует метод setTimeout для вывода текущего времени в строке состояния обозревателя каждую секунду:
<HTML> <HEAD> <SCRIPT> var timerID = null; function stopclock() { if (timerID) clearInterval(timerID); timerID = null; } function startclock() { stopclock(); showtime(); } function showtime() { window.status = (new Date()).toLocaleTimeString(); timerID = setTimeout(showtime, 1000); // или setTimeout("showtime()", 1000) } </SCRIPT> </HEAD> <BODY onload="startclock()"> </BODY> </HTML>
Метод sizeToContent
Синтаксис: window.sizeToContent()
Метод sizeToContent изменяет размеры окна, так чтобы они соответствовали его содержимому.
Метод stop
Синтаксис: window.stop()
Метод stop прекращает загрузку текущего документа. Его вызов равносилен нажатию кнопки Stop (Остановить) на панели обозревателя.
Метод unescape
Синтаксис: window.unescape(строка) Аргументы: строка любое строковое выражение Результат: новый строковый объект
Метод unescape преобразует строку из шестнадцатеричной кодировки
текстовую. Формат исходной строки описан в методе escape.
Например, в русской версии Windows оператор document.write(unescape("%D1%F2%F0%EE%EA%E0"))
выведет на экран обозревателя текст Строка.
Обратите внимание, что этот метод перекрывает метод unescape глобального объекта JavaScript, который декодирует шестнадцатеричные коды Unicode.
Метод updateCommands
Синтаксис: window.updateCommands()
Этот метод пока не документирован.
Нестандартные события окна
- close
- Это событие генерируется перед закрытием окна.
- bubbles: false;
- cancelable: false;
- контекст: нет.
- dragdrop
- Это событие генерируется, когда пользователь перетаскивает в окно обозревателя внешний объект, например, файл.
- bubbles: true;
- cancelable: true;
- контекст: data (массив строк, содержащих URI перетащенных в окно объектов).
- paint
- Это событие генерируется при каждой перерисовке окна (первый раз после onload,
а затем всякий раз, когда требуется перерисовка окна).
- bubbles: false;
- cancelable: false;
- контекст: нет.