Глава 4.14. Отображение документов в Internet Explorer

4.14.1. Окна Internet Explorer: объект window

Объект window в Internet Explorer выполняет те же функции, что и в Gecko. Однако, здесь мы можем программно открывать новые окна (и, следовательно, создавать новые объекты window) с помощью методов open, showModalDialog и showModelessDialog.

Свойства объекта window
Свойство Изменяемое Описание
clientInformation Нет Объект clientInformation, содержащий информацию обо обозревателе.
clipboardData Нет Объект clipboardData, обеспечивающий доступ к системному буферу сохранения.
closed Нет Проверяет, закрыто ли заданное окно.
defaultStatus Да Сообщение по умолчанию в строке состояния обозревателя.
dialogArguments Нет Аргументы модального диалога.
dialogHeight Да Высота окна модального диалога.
dialogLeft Да Левая координата окна модального диалога.
dialogTop Да Верхняя координата окна модального диалога.
dialogWidth Да Ширина окна модального диалога.
document Нет Объект document, указывающий на HTML-документ, открытый в заданном окне.
event Нет Объект event, указывающий на параметры текущего события.
external Нет Объект external, обеспечивающий доступ к внешним компонентам обозревателя.
frameElement Нет Указатель на FRAME или IFRAME, содержащий данное окно.
frames Нет Коллекция всех объектов window, определенных документом в данном окне.
history Нет Объект history, обеспечивающий доступ к истории просмотра узлов.
Image Да Недокументированный объект.
length Нет Количество фреймов в данном окне.
location Нет Объект location, содержащий URI документа в данном окне.
name Нет Имя фрейма или окна.
navigator Нет Объект navigator, содержащий информацию обо обозревателе.
offscreenBuffering Да Управляет фоновой буферизацией отображения.
opener Да Ссылка на окно, создавшее данное окно.
Option Да Недокументированный объект.
parent Нет Доступ к отцу данного окна.
returnValue Да Результат выполнения модального диалога.
screen Нет Объект screen, содержащий сведения о клиентской области отображения.
screenLeft Нет Левая координата клиентской области отображения.
screenTop Нет Верхняя координата клиентской области отображения.
self Нет Ссылка на текущее окно.
status Да Текст сообщения в строке состояния обозревателя.
top Нет Возвращает ссылку на первое окно в иерархии объектов window.
window Нет Ссылка на текущее окно.
Методы объекта window
Метод Описание
alert Создает диалоговое окно сообщения.
attachEvent Присоединяет заданную функцию к заданному событию.
blur Заставляет окно потерять фокус и генерирует событие onblur.
clearInterval Сбрасывает интервал, заданный методом setInterval.
clearTimeout Сбрасывает таймаут, заданный методом setTimeout.
close Закрывает текущее окно обозревателя.
confirm Создает диалоговое окно подтверждения.
createPopup Создает всплывающее окно.
detachEvent Отсоединяет заданную функцию от заданного события.
execScript Выполняет заданный сценарий.
focus Заставляет окно получить фокус и генерирует событие onfocus.
moveBy Сдвигает окно на заданную величину.
moveTo Сдвигает окно в заданную позицию.
navigate Загружает ресурс с заданным URI в текущее окно.
open Создает новое окно.
print Печатает документ, открытый в заданном окне.
prompt Создает диалоговое окно для ввода пользователем строки.
resizeBy Изменяет размеры окна на заданную величину.
resizeTo Задает новые размеры окна.
scroll Прокручивает окно до заданной позиции.
scrollBy Прокручивает окно на заданную величину.
scrollTo Прокручивает окно до заданной позиции.
setActive Делает окно текущим, не помещая на него фокус.
setInterval Задает периодическое вычисление выражения всякий раз, когда истечет данный интервал.
setTimeout Задает вычисление выражения, когда истечет данный таймаут.
showHelp Открывает файл справки в формате HTML Help.
showModalDialog Создает окно модального диалога.
showModelessDialog Создает окно немодального диалога.
События объекта window
Событие Описание
onactivate Генерируется, когда окно становится активным.
onafterprint Генерируется сразу после печати документа, содержащегося в окне.
onbeforedeactivate Генерируется перед тем, как окно перестанет быть активным.
onbeforeprint Генерируется перед печатью документа, содержащегося в окне.
onbeforeunload Генерируется перед выгрузкой документа.
onblur Генерируется, когда окно теряет фокус.
oncontrolselect Генерируется перед тем, как в окне будет выбран элемент, допускающий изменение размеров.
ondeactivate Генерируется, когда окно перестает быть активным.
onerror Генерируется при возникновении ошибки в процессе загрузки документа.
onfocus Генерируется, когда окно получает фокус.
onhelp Генерируется при нажатии пользователем клавиши F1 в активном окне обозревателя.
onload Генерируется сразу после загрузки документа.
onresize Генерируется перед изменением размеров окна.
onresizeend Генерируется при завершении изменения размеров объекта.
onresizestart Генерируется при начале изменения размеров объекта..
onscroll Генерируется при прокрутке содержимого окна.
onunload Генерируется перед завершением выгрузки документа.

Свойство clientInformation

Синтаксис:  window.clientInformation
Изменяемое: нет

Значением свойства clientInformation является объект, содержащий информацию об обозревателе. Он имеет следующие свойства, доступные только для чтения:

Свойство Описание
appCodeName Кодовое имя обозревателя. Всегда равно "Mozilla".
appMinorVersion Младшая цифра версии обозревателя. В MSIE 5.x равна 0.
appName Название обозревателя. Всегда равно "Microsoft Internet Explorer".
appVersion Версия обозревателя и имя платформы, например,
"4.0 (compatible; MSIE 5.5; Windows 98)".
browserLanguage Язык пользовательского интерфейса обозревателя (см. Таблицу П8.1).
cookieEnabled true, если куки на стороне клиента разрешены, и false, если запрещены.
cpuClass Тип процессора клиента:
"x86" Intel
"68K" Motorola 680x0
"Alpha"   DEC Alpha
"PPC" Motorola PowerPC
"Other"   прочие
mimeTypes Свойство введено для совместимости с Netscape, возвращающего коллекцию объектов типа MimeType. Пока не реализовано и возвращает коллекцию из нуля элементов.
onLine true, если обозреватель не находится в автономном режиме, и false в противном случае.
opsProfile Недокументированный синоним свойства userProfile.
platform Операционная система клиента:
"HP-UX" HP Unix
"MacPPC"   Macintosh/PowerPC
"Mac68X" Macintosh/680x0
"SunOS" Solaris
"Win16" 16-разрядная Windows
"Win32" 32-разрядная Windows
"WinCE" Windows CE
plugins Коллекция всех объектов EMBED в документе.
systemLanguage Язык пользовательского интерфейса операционной системы (см. Таблицу П8.1).
userAgent Информация об обозревателе в формате поля User-Agent заголовка запроса HTTP (см. Таблицу П5.2), например,
"Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)".
userLanguage Текущий язык пользователя (см. Таблицу П8.1).
userProfile Доступ к объекту userProfile, который будет описан в WDH+.

Кроме того, данный объект имеет два метода:

Метод Описание
javaEnabled() Возвращает true, если Java-аплеты в обозревателе разрешены, и false в противном случае.
taintEnabled() Возвращает true, если в обозревателе разрешена защита данных (data tainting), и false в противном случае. Этот метод включен только для совместимости с обозревателями Netscape и в IE всегда возвращает false.

Пример использования clientInformation: следующая функция возвращает номер версии для Internet Explorer и 0 для остальных обозревателей

function getMSIEVersion() {
  var ua = clientInformation.userAgent;
  var msie = ua.lastIndexOf("MSIE ");
  return (msie > 0) ? parseFloat(ua.substr(msie + 5)) : 0;
}

Свойство clipboardData

Синтаксис:  window.clipboardData
Изменяемое: нет

Значением свойства clipboardData является объект, обеспечивающий доступ к системному буферу сохранения. Буфер сохранения в Windows поддерживает пять форматов хранения данных, которые в DHTML обозначаются так:

Обозначение Описание
"Text" Текстовый формат
"URL" Формат URI
"File" Файловый формат
"HTML" Формат HTML
"Image" Формат графического образа

Этот объект не имеет свойств и поддерживает следующие методы:

Метод Описание
clearData(формат?) Удаляет заданный формат из буфера сохранения. Если формат не задан, то удаляются все форматы.
getData(формат) Извлекает данные из буфера сохранения заданного формата, который может иметь значение "Text" или "URL", и возвращает их в виде строки.
setData(формат, данные) Помещает в буфер сохранения строку данные в заданном формате, который может иметь значение "Text" или "URL". Возвращает true в случае успеха и false в противном случае.

Пример использования clipboardData для вырезания текста на Веб-странице и вставки его в другое место:

<HTML>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<HEAD>
<SCRIPT>
// Выделяем текст, который следует вырезать
function selectText() {
  var r = document.body.createTextRange();
  r.findText(divSource.innerText);
  r.select();
}
// По умолчанию вырезание текста в IE запрещено. Следующая функция его разрешает.
function enableCut() {
  event.returnValue = false;
}
// По умолчанию вставка из буфера в IE запрещена. Следующая функция его разрешает.
function enablePaste() {
  event.returnValue = false;
}
// Вставляем текст из буфера сохранения и сбрасываем returnValue,
// чтобы отменить реакцию обозревателя по умолчанию.
function pasteText() {
  var r = document.selection.createRange();
  r.text = clipboardData.getData("Text");
}
</SCRIPT>
</HEAD>
<BODY onload="selectText()">
<DIV ID="divSource" onbeforecut="enableCut()">Вырежьте этот текст</DIV>
<DIV onbeforepaste="enablePaste()" onpaste="pasteText()">
  Вставьте текст сюда
</DIV>
</BODY>
</HTML>

Свойство closed

Синтаксис:  window.closed
Изменяемое: нет

Значением свойства closed является true, если окно window закрыто, и false, если нет. Пример:

if (!parent.closed)
  parent.close();

Свойство defaultStatus

Синтаксис:  window.defaultStatus
Изменяемое: да

Свойство defaultStatus возвращает или устанавливает текст сообщения, выводимый по умолчанию в строке состояния, которая расположена в нижней части окна обозревателя. Не следует путать его со свойством status, которое содержит текст, выводимый в строке состояния при возникновении определенных событий. Пример:

var d = new Date();
defaultStatus = "Сегодня: " + d.toLocaleDateString();

Свойство dialogArguments

Синтаксис:  window.dialogArguments
Изменяемое: нет

Этим свойством обладают только окна, созданные методом showModalDialog. Оно содержит аргументы модального диалога, переданные в вызове showModalDialog через параметр аргументы.

Свойство dialogHeight

Синтаксис:  window.dialogHeight
Изменяемое: да

Этим свойством обладают только окна, созданные методами showModalDialog и showModelessDialog. Оно позволяет изменять или считывать высоту окна диалога, которая задается по правилам размеров CSS. Пример:

window.showModalDialog("message.htm", "", 
  "dialogTop:100px; dialogLeft:200px; dialogWidth:5cm; dialogHeight:10cm")

Свойство dialogLeft

Синтаксис:  window.dialogLeft
Изменяемое: да

Этим свойством обладают только окна, созданные методами showModalDialog и showModelessDialog. Оно позволяет изменять или считывать смещение окна диалога от левого края экрана, которое задается по правилам размеров CSS. Пример см. в описании свойства dialogHeight.

Свойство dialogTop

Синтаксис:  window.dialogTop
Изменяемое: да

Этим свойством обладают только окна, созданные методами showModalDialog и showModelessDialog. Оно позволяет изменять или считывать смещение окна диалога от верхнего края экрана, которое задается по правилам размеров CSS. Пример см. в описании свойства dialogHeight.

Свойство dialogWidth

Синтаксис:  window.dialogWidth
Изменяемое: да

Этим свойством обладают только окна, созданные методами showModalDialog и showModelessDialog. Оно позволяет изменять или считывать ширину окна диалога, которая задается по правилам размеров CSS. Пример см. в описании свойства dialogHeight.

Свойство document

Синтаксис:  window.document
Изменяемое: нет

Это свойство возвращает указатель на объект document, соответствующий HTML-документу, открытому в данном окне.

Свойство event

Синтаксис:  window.event
Изменяемое: нет

Это свойство возвращает указатель на объект event, описывающий текущее событие. Этот объект доступен только во время обработки событий, и поэтому к нему можно обращаться только из обработчиков событий. Подробное описание этого объекта и примеры его использования приведены в п. 4.12.3.

Свойство external

Синтаксис:  window.external
Изменяемое: нет

Это свойство возвращает указатель на объект external, обеспечивающий доступ к внешним компонентам обозревателя. Объект external будет подробно описан в WDH+.

Свойство frameElement

Синтаксис:  window.frameElement
Изменяемое: нет

Это свойство возвращает объект FRAME или IFRAME, в котором содержится данное окно. Если такого элемента нет, то возвращается null. Пример:

var o = window.frameElement;
if (o) o.src="newdoc.htm";

Свойство frames

Синтаксис:  window.frames
Изменяемое: нет

Это свойство возвращает указатель на коллекцию всех объектов window, определенных документом, ассоциированным с данным окном.

Свойство history

Синтаксис:  window.history
Изменяемое: нет

Значением свойства history является объект, содержащий информацию об узлах, посещенных пользователем (история просмотра).

Этот объект имеет одно свойство, доступное только для чтения:

Свойство Описание
length Количество объектов в коллекции

и следующие методы:

Метод Описание
back(число?) Эквивалентен нажатию кнопки обозревателя Back заданное число раз. Если число опущено, то загружается предыдущий узел, т. е. back() эквивалентно go(-1). Попытка выхода за пределы истории игнорируется, и пользователь остается на текущей странице.
forward(число?) Эквивалентен нажатию кнопки обозревателя Forward заданное число раз. Если число опущено, то загружается следующий узел, т. е. forward() эквивалентно go(1). Попытка выхода за пределы истории игнорируется, и пользователь остается на текущей странице.
go(позиция) Загружает узел, заданный аргументом позиция. Если позиция — это число, то она задает положение узла в истории относительно текущей страницы. Если позиция — это строка, то она должна задавать полный или частичный URI уэла, содержащегося в истории. Если заданный узел не найден или сделана попытка выхода за пределы истории, то пользователь остается на текущей странице.

Свойство length

Синтаксис:  window.length
Изменяемое: нет

Это свойство возвращает количество фреймов в данном окне, т. е. количество содержащихся в нем элементов FRAME и IFRAME. Если значение этого свойства не равно нулю, то для доступа к соответствующим оконным объектам можно использовать конструкцию window[i], где i = 0, … window.length-1.

Свойство 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, следующая за символом "?" (включая его).

Кроме того, данный объект имеет два метода:

Метод Описание
assign(URI) Загружает в окно документ с заданным URI.
reload(flag?) Перезагружает текущий документ. Аргумент указывает способ перезагрузки: true — перезагрузка с сервера, false — перезагрузка из кэш-памяти. Если аргумент опущен, то он принимается равным false.
replace(URI) Заменяет текущий документ на документ с заданным URI. При этом текущий документ удаляется из истории просмотра.

Мы можем обращаться к объекту location и как к строке, например window.location = "http://mywww.com/newpage.htm" приведет к загрузке документа с заданным URI. Такое обращение эквивалентно чтению или записи свойства location.href.

Свойство name

Синтаксис:  window.name
Изменяемое: нет

Это свойство позволяет считывать и устанавливать имя окна или фрейма. Его значение задается в формате имени фрейма HTML. Во избежание двусмысленности это свойство всегда следует использовать с префиксом window. Примеры:

window.name = "Window1";		// задание имени окна
parent.frames[0].name = "LetfFrame";	// задание имени фрейма
window.open("file.htm", "_blank");	// открытие документа в новом окне

Свойство navigator

Синтаксис:  window.navigator
Изменяемое: нет

Свойство navigator является синомимом свойства clientInformation, введенным для совместимости с обозревателями Netscape.

Свойство offscreenBuffering

Синтаксис:  window.offscreenBuffering
Изменяемое: да

Свойство offscreenBuffering возвращает или устанавливает режим фоновой буферизации отображения Если этот режим включен, то отображение объектов производится в фоновом режиме, а затем сформированное изображение появляется на экране. Данное свойство может принимать следующие значения:

auto Обозреватель сам определяет, когда использовать буферизацию (принято по умолчанию).
true Фоновая буферизация включена.
false Фоновая буферизация выключена.

Пример:

offscreenBuffering = true;	// включить насильственную буферизацию

Свойство opener

Синтаксис:  window.opener
Изменяемое: да

Это довольно своеобразное по реализации свойство. Изначально оно возвращает ссылку на объект window, создавший данное окно; если окно было открыто обозревателем, а не методом open, showModalDialog или showModelessDialog, то его значение undefined. Своеобразие состоит в том, что мы можем присвоить этому свойству не только ссылку на объект window, но и текстовую строку, и тогда оно будет возвращать в качестве результата эту строку. Поэтому перед использованием данного свойства рекомендуется проверять его тип, например:

function getOpenerName() {
  if (typeof(window.opener) == "object")
    return window.opener.name;
  else
    return window.opener;
}

Свойство parent

Синтаксис:  window.parent
Изменяемое: нет

Это свойство возвращает ссылку на объект window, соответствующий отцу данного окна. Иными словами, для окна, созданного элементом FRAME, оно возвращает ссылку на окно, содержащее соответствующий элемент FRAMESET, а для остальных окон ссылку на самого себя (ср. свойство top). Пример:

for (var i = 0; i < parent.length; i++)
  alert(parent[i].location);

Свойство returnValue

Синтаксис:  window.returnValue
Изменяемое: да

Этим свойством обладают только окна, созданные методом showModalDialog. Оно позволяет считать или изменить значение, которое будет возвращено этим методом в качестве результата. Пример:

<INPUT type="button" onclick="window.returnValue=1; window.close()" value="OK">
<INPUT type="button" onclick="window.returnValue=0; window.close()" value="Cancel">

Свойство screen

Синтаксис:  window.screen
Изменяемое: нет

Значением свойства screen является объект, содержащий информацию об экране клиента. Он имеет следующие свойства:

Свойство Изменяемое Описание
availHeight Нет Высота рабочей области экрана в пикселях (исключая высоту панели задач). Для экрана 600x800 обычно равна от 570 до 600.
availWidth Нет Ширина рабочей области экрана в пикселях (исключая ширину панели задач). Для экрана 600x800 обычно равна от 730 до 800.
bufferDepth Да Число битов на пиксель в фоновом буфере. Возможные значения:
0 Без буферизации. colorDepth принимается равным количеству цветов экрана.
-1 Брать из настроек дисплея. colorDepth принимается равным количеству цветов экрана.
1 — 32   Явное задание числа битов. colorDepth принимается равным этому же значению.
colorDepth Нет Число битов на пиксель при отображении цветов. Типичные значения: 8 (256 цветов), 16 (High Color), 24 (True Color).
fontSmoothingEnabled Нет true, если включено сглаживание неровностей экранных шрифтов, и false в противном случае.
height Нет Высота экрана в пикселях. Например, для экрана 600x800 равна 600.
updateInterval Да Интервал обновления экрана в миллисекундах. По умолчанию равен 0 (не обновлять). Изменять без крайней необходимости не рекомендуется.
width Нет Ширина экрана в пикселях. Например, для экрана 600x800 равна 800.

Следующий пример

alert("Экран: "+screen.width+" x "+screen.height+" x "+screen.colorDepth +" бита");

выведет окно сообщения с текстом вида Экран: 800 x 600 x 24 бита.

Свойство screenLeft

Синтаксис:  window.screenLeft
Изменяемое: нет

Значением свойства screenLeft является расстояние в пикселях от левого края клиентской области окна обозревателя до левого края экрана.

Свойство screenTop

Синтаксис:  window.screenTop
Изменяемое: нет

Значением свойства screenTop является расстояние в пикселях от верхнего края клиентской области окна обозревателя до верхнего края экрана.

Свойство self

Синтаксис:  window.self
Изменяемое: нет

Это свойство возвращает ссылку на текущий объект window, т. е. на самого себя.

Свойство status

Синтаксис:  window.status
Изменяемое: да

Свойство status возвращает или устанавливает текст сообщения, выводимый в строке состояния, которая расположена в нижней части окна обозревателя. Не следует путать его со свойством defaultStatus, которое содержит текст, выводимый в строке состояния по умолчанию. Пример:

<BODY onload="window.status='Страница загружена!'">

Свойство top

Синтаксис:  window.top
Изменяемое: нет

Это свойство возвращает ссылку на первое окно в иерархии объектов window, т. е. на объект, у которого свойство parent равно самому объекту.

Свойство window

Синтаксис:  window.window
Изменяемое: нет

Это свойство возвращает ссылку на текущий объект window, т. е. на самого себя (синоним свойства self).

Метод alert

Синтаксис: window.alert(текст?)
Аргументы: текст — строковое значение

Метод alert создает диалоговое окно сообщения и, если текст задан, выводит его в это окно. Например, оператор alert("Здравствуйте!") выведет на экран следующее окно:

Пример отображения окна сообщения

Метод attachEvent

Синтаксис: window.attachEvent(событие, функция)
Аргументы: событие — строковое значение
           функция — имя функции JavaScript
Результат: логическое значение

Этот метод присоединяет к стандартному событию DHTML заданную функцию. Он возвращает true, если функция успешно присоединена, и false в противном случае. Присоединение функции к событию состоит в следующем: когда происходит заданное событие, вызывается его обработчик, а после завершения работы обработчика события вызываются все функции, присоединенные к данному событию, причем в произвольном порядке.

Хотя данный метод применим в обычных сценариях, его основное назначение состоит в присоединении к событиям реакций. При этом реакция, присоединенная к событию методом attachEvent, должна явно вызывать метод detachEvent для отсоединения от данной страницы при генерации события ondetach. Реакция, присоединенная к событиям страницы через HTC-элемент ATTACH, автоматически прекращает получать извещения о событиях, когда реакция отсоединяется от элемента, поэтому в этом случае вызывать detachEvent не нужно. Пример использования этого метода см. в п. 4.12.2.

Метод blur

Синтаксис: window.blur()

Метод blur заставляет окно потерять фокус и генерирует событие onblur. Это программный эквивалент удалению пользователем фокуса с текущего окна.

Метод clearInterval

Синтаксис: window.clearInterval(таймер)
Аргументы: таймер — целое значение

Этот метод останавливает таймер, созданный методом setInterval. См. подробности и пример в описании этого метода.

Метод clearTimeout

Синтаксис: window.clearTimeout(таймер)
Аргументы: таймер — целое значение

Этот метод останавливает таймер, созданный методом setTimeout. См. подробности и пример в описании этого метода.

Метод close

Синтаксис: window.close()

Метод close закрывает окно обозревателя. Если окно было создано программно, то оно просто закрывается. Если же окно было создано обозревателем или если это единственное открытое окно обозревателя, то перед его закрытием выводится диалоговое окно, запрашивающее подтверждение действия.

Если метод close вызывается из обработчика событий элемента BODY, то подразумевается метод window.close. Если же он вызывается из объекта event элемента BODY, то подразумевается метод document.close.

Метод confirm

Синтаксис: window.confirm(текст?)
Аргументы: текст — строковое значение
Результат: логическое значение

Метод confirm создает диалоговое окно подтверждения и, если текст задан, выводит его в это окно. Он возвращает true, если пользователь нажал кнопку OK, и false, если пользователь нажал кнопку Cancel. Например, оператор confirm("Отформатировать системный диск?") выведет на экран следующее окно:

Пример отображения окна подтверждения

Метод createPopup

Синтаксис: window.createPopup()
Результат: объект window

Метод createPopup создает всплывающее окно (popup window) и возвращает указатель на него. Всплывающее окно первоначально находится в скрытом состоянии; для его показа нужно вызвать метод show(x, y, width, height, elem?). Здесь x и y задают координаты левого верхнего угла всплывающего окна, width и height — его высоту и ширину, а elem — необязательный объект, относительного которого задаются перечисленные координаты (если он не указан, то координаты вычисляются относительно системной области экрана). Пример:

var oPopup = window.createPopup();
var oBody = oPopup.document.body;
oBody.style.backgroundColor = "lightyellow";
oBody.style.border = "solid black 1px";
oBody.innerHTML = "Щелкните вне окна, чтобы его закрыть.";
oPopup.show(100, 100, 300, 25, document.body);

Метод detachEvent

Синтаксис: window.detachEvent(событие, функция)
Аргументы: событие — строковое значение
           функция — имя функции JavaScript

Этот метод отсоединяет от стандартного события DHTML заданную функцию, ранее присоединенную к нему методом attachEvent. Хотя он применим в обычных сценариях, его основное назначение состоит в отсоединении от событий реакций. При этом реакция, присоединенная к событию методом attachEvent, должна явно вызывать метод detachEvent для отсоединения от данной страницы при генерации события ondetach. Реакция, присоединенная к событиям страницы через HTC-элемент ATTACH, автоматически прекращает получать извещения о событиях, когда реакция отсоединяется от элемента, поэтому в этом случае вызывать detachEvent не нужно. Пример использования этого метода см. в п. 4.12.2.

Метод execScript

Синтаксис: window.execScript(выражение [,язык]?)
Аргументы: выражение, язык — строковые значения

Этот метод выполняет сценарий, заданный выражением. Язык задает имя сценарного языка; по умолчанию он равен "JScript". Пример:

function execute(handler) {
  switch (typeof(handler)) {
    case "string":
      execScript(handler); break;
    case "function":
      handler(); break;
  }
}

execute("alert('Проверка')");

Метод focus

Синтаксис: window.focus()

Метод focus заставляет окно получить фокус и генерирует событие onfocus. Учтите, что окно не может получить фокус, пока документ не будет полностью в него загружен.

Метод 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);

Метод navigate

Синтаксис: window.navigate(URI)
Аргументы: URI — строковое значение

Метод navigate загружает в окно ресурс с заданным URI. Пример: navigate("test.html").

Метод open

Синтаксис: window.open(uri, имя [, свойства?][, флаг?])
Аргументы: uri, имя, свойства — строковые значения
           флаг — логическое значение
Результат: объект window

Метод open создает новое окно обозревателя и возвращает ссылку на него. Аргумент uri задает URI открываемого документа, аргумент имя — имя фрейма для нового окна, которое может использоваться в атрибуте target элементов A и FORM. Необязательный аргумент флаг указывает, нужно ли создавать для новой Веб-страницы отдельную запись в истории просмотра. Если он равен true, то новая запись не создается; вместо этого новая страница замещает в истории текущую. Необязательный аргумент свойства представляет собой список свойств нового окна, разделенных запятыми. В нем мы можем задать следующие свойства:

Свойство Описание
channelmode Показывать панель каналов.
directories Показывать панель ссылок обозревателя.
fullscreen Открыть окно в полноэкранном режиме.
height Высота окна в пикселях.
left Расстояние в пикселях от левого края экрана по горизонтали.
location Показывать адресную строку обозревателя.
menubar Показывать меню обозревателя.
resizable Пользователь может изменять размеры окна.
scrollbars Показывать полосы прокрутки окна.
status Показывать строку состояния обозревателя.
titlebar Показывать заголовок окна (только из HTA).
toolbar Показывать панель кнопок обозревателя.
top Расстояние в пикселях от верхнего края экрана по вертикали.
width Ширина окна в пикселях.

Свойствам width, height, left и top должны быть присвоены числовые значения. Остальные свойства являются логическими; им можно присваивать значения 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, то метод вернет строковое или целое значение, введенное пользователем в поле ввода.

Метод resizeBy

Синтаксис: window.resizeBy(x, y)
Аргументы: x, y — целые значения

Этот метод изменяет размеры окна на x пикселей по горизонтали и y пикселей по вертикали. Пример: resizeBy(10, -5).

Метод resizeTo

Синтаксис: window.resizeTo(ширина, высота)
Аргументы: ширина, высота — целые значения

Этот метод задает новые размеры окна в пикселях, равными ширине по горизонтали и высоте по вертикали. Пример: resizeTo(200, 200).

Метод scroll

Синтаксис: window.scroll(x, y)
Аргументы: x, y — целые значения

Это устаревший синоним метода scrollTo.

Метод scrollBy

Синтаксис: window.scrollBy(x, y)
Аргументы: x, y — целые значения

Этот метод прокручивает документ в окне на x пикселей по горизонтали и y пикселей по вертикали относительно текущей позиции документа в окне. Прокрутка производится только в том случае, когда новая позиция в окне не видна. Пример: scrollBy(10, -5).

Метод scrollTo

Синтаксис: window.scrollTo(x, y)
Аргументы: x, y — целые значения

Этот метод прокручивает документ в окне так, чтобы верхний левый угол окна отстоял от начала документа на x пикселей по горизонтали и y пикселей по вертикали. Прокрутка производится только в том случае, когда новая позиция в окне не видна. Пример: scrollTo(0, 20).

Метод setActive

Синтаксис: window.setActive()

Этот метод делает окно текущим, не помещая на него фокус.

Метод 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>

Метод showHelp

Синтаксис: window.showHelp(URI, контекст?)
Аргументы: URI — строковое значение
           контекст — строковое или числовое значение

Этот метод открывает в новом окне справочный файл, заданный URI. Необязательный аргумент контекст задает идентификатор контекста искомой справки в справочном файле. Поддерживаются только файлы с расширениями .htm и .chm (формата HTMLHelp). Пример: showHelp("C:\\WINDOWS\\HELP\\ADO210.CHM").

Метод showModalDialog

Синтаксис: window.showModalDialog(uri [, аргументы?][, свойства?])
Аргументы: uri, имя, аргументы, свойства — строковые значения
           аргументы — значение произвольного типа
Результат: определяется новым окном

Метод showModalDialog создает новое окно модального диалога. Аргумент uri задает URI открываемого документа, необязательный параметр аргументы используется для передачи новому окну значения любого типа; это значение может быть извлечено в диалоговом окне через свойство dialogArguments. Необязательный аргумент свойства представляет собой список свойств нового окна вида свойство:значение, разделенных точками с запятой. В нем мы можем задать следующие свойства:

Свойство Описание
dialogHeight:размер Высота окна.
dialogLeft:размер Расстояние от левого края экрана по горизонтали.
dialogTop:размер Расстояние от верхнего края экрана по вертикали.
dialogWidth:размер Ширина окна.
center Центрировать окно на экране.
dialogHide Скрывать окно при печати (только из HTA).
edge Тип рамки окна: sunken (выемка) или raised (выступ, по умолчанию).
help Выводить контекстно-зависимую иконку справки.
resizable Пользователь может изменять размеры окна.
scroll Показывать полосы прокрутки окна.
status Показывать строку состояния обозревателя.
unadorned Показывать рамку окна (только из HTA).

Свойства center, dialogHide, help, resizable, scroll, status и unadorned являются логическими; им можно присваивать значения yes или no (или, что то же самое, on или off, 1 или 0).

Значением этого метода является значение свойства returnValue, установленное в окне диалога. Пример создания модального диалога:

window.showModalDialog("dialog.htm", "",
 "dialogHeight:100; dialogWidth:100; resizable:yes; edge:sunken");

Метод showModelessDialog

Синтаксис: window.showModelessDialogg(uri [, аргументы?][, свойства?])
Аргументы: uri, имя, аргументы, свойства — строковые значения
           аргументы — значение произвольного типа
Результат: определяется новым окном

Метод showModelessDialog создает новое окно немодального диалога. Немодальный диалог отличается от модального тем, что не закрывая его, мы можем переключиться в родительское окно. Аргумент uri задает URI открываемого документа, необязательный параметр аргументы используется для передачи новому окну значения любого типа; это значение может быть извлечено в диалоговом окне через свойство dialogArguments. Необязательный аргумент свойства представляет собой список свойств нового окна вида свойство:значение, разделенных точками с запятой. В нем мы можем задать следующие свойства:

Свойство Описание
dialogHeight:размер Высота окна.
dialogLeft:размер Расстояние от левого края экрана по горизонтали.
dialogTop:размер Расстояние от верхнего края экрана по вертикали.
dialogWidth:размер Ширина окна.
center Центрировать окно на экране.
dialogHide Скрывать окно при печати (только из HTA).
edge Тип рамки окна: sunken (выемка) или raised (выступ, по умолчанию).
help Выводить контекстно-зависимую иконку справки.
resizable Пользователь может изменять размеры окна.
scroll Показывать полосы прокрутки окна.
status Показывать строку состояния обозревателя.
unadorned Показывать рамку окна (только из HTA).

Свойства center, dialogHide, help, resizable, scroll, status и unadorned являются логическими; им можно присваивать значения yes или no (или, что то же самое, on или off, 1 или 0).

Значением этого метода является значение свойства returnValue, установленное в окне диалога. Пример создания немодального диалога:

window.showModelessDialog("dialog.htm", "",
 "dialogHeight:100; dialogWidth:100; resizable:yes; edge:sunken");