Окно или фрэйм в браузере. Это объект верхнего уровня для каждой группы объектов
document
, Location
и History
.
JavaScript 1.1: добавлены свойства
JavaScript 1.2: добавлены свойства |
Машина выполнения JavaScript создаёт объект window
для каждого тэга
BODY
или FRAMESET
. Она также создаёт объект window
для представления каждого фрэйма, определённого тэгом FRAME
. Кроме
того, Вы можете создать другие окна, вызывая метод window.open
.
Детали определения окна см. в разделе open
.
В JavaScript 1.1, на некоторых платформах, размещение обработчика onBlur
или onFocus
в тэге FRAMESET
не даёт эффекта.
Объект window
это объект верхнего уровня в клиентской иерархии JavaScript.
Объект window
может представлять окно верхнего уровня или фрэйм из
набора фрэймов. Для удобства Вы можете представлять объект Frame
как объект window
, который не является окном верхнего уровня.
Однако в действительности не существует отдельный класс Frame
; эти
объекты в действительности являются объектами window
с очень небольшими отличиями:
parent
и
top
являются ссылками на само это окно. Для фрэйма - top
ссылается на самое верхнее окно браузера, а parent
ссылается на родительское окно текущего окна.defaultStatus
или status
устанавливает текст status-строки
браузера. Для фрэйма установка этих свойств устанавливает только текст
статусной строки, когда курсор находится над фрэймом.close
не используется для окон,
которые являются фрэймами.onBlur
или onFocus
для
фрэйма Вы обязаны установить свойство onblur
или onfocus
и специфицировать его в нижнем регистре (нельзя специфицировать его в HTML).FRAME
содержит атрибуты SRC
и NAME
,
Вы можете обратиться к этому фрэйму из фрэйма-родственника через parent.frameName
или parent.frames[index]
. Например, если четвёртый фрэйм из
набора фрэймов имеет атрибут NAME="homeFrame"
,
фрэймы-родственники могут обратиться к этому фрэйму parent.homeFrame
или
parent.frames[3]
.
Для всех окон свойства self
и window
объекта window
являются синонимами текущего окна, и Вы можете по выбору использовать их для
обращения к текущему окну. Например, можно закрыть текущее окно, вызвав метод close
в window
или в self
. Вы можете использовать эти
свойства, чтобы сделать Ваш код более читабельным или чтобы отличить ссылку self.status
от status
.
См. далее примеры для свойств и методов.
Поскольку принимается существование текущего окна, Вы не должны обращаться к
имени окна при вызове его методов и присвоении значений свойств. Например,
status="Jump to a new location"
это верное присвоение свойства, а close()
это верный вызов метода.
Однако, если Вы открываете или закрываете окно обработчиком события, Вы обязаны
специфицировать window.open()
или window.close()
вместо open()
или close()
. Из-за видимости static-объектов
в JavaScript, вызов close()
без указания имени объекта эквивалентен document.close()
.
По некоторым причинам, если Вы обращаетесь к объекту location
в
обработчике события, Вы обязаны специфицировать window.location
вместо location
. Вызов location
без специфицирования
имени объекта эквивалентен document.location
, что является
синонимом document.URL
.
Вы можете обратиться к объектам Frame
окна в коде через
использование массива frames
. В окне с тэгом FRAMESET
массив frames
содержит вхождение для каждого фрэйма.
Окну нужны обработчики событий, пока HTML, который содержит тэг BODY
или FRAMESET
, не будет загружен в него.
Свойство |
Описание
|
Объект, дающий доступ к возможностям шифрования Navigator'а.
Отражает сообщение по умолчанию, выводимое в статусной строке.
Содержит информацию о текущем документе и предоставляет методы для отображения вывода HTML пользователю.
|
Содержит информацию о URL, которые клиент посетил в данном окне.
Специфицирует вертикальные размеры в пикселах области содержимого окна.
Специфицирует горизонтальные размеры в пикселах области содержимого окна.
|
|
|
Специфицирует, выполняются ли обновления окна во внеоконном буфере.
Специфицирует имя окна вызывающего документа, если окно открывается методом
Специфицирует вертикальные размеры в пикселах внешней границы окна.
Специфицирует горизонтальные размеры в пикселах внешней границы окна.
Предоставляет текущую x-позицию в пикселах просматриваемой страницы окна.
Предоставляет текущую у-позицию в пикселах просматриваемой страницы окна.
Синоним окна или фрэйма, чей frameset содержит текущий фрэйм.
Представляет personal bar окна браузера (называемый также строкой директорий).
|
|
|
---|
Метод |
Описание
|
Декодирует строку данных, кодированную с использованием кодировки base-64.
Отменяет последний шаг истории в любом фрэйме окна верхнего уровня.
|
|
Устанавливает захват окном или документом всех событий специфицированного типа.
Отменяет таймаут, установленный методом
Отменяет таймаут, установленный методом
|
Выводит диалог Confirm со специфицированным сообщением и кнопками OK и Cancel.
Возвращает псевдослучайную строку, длина которой равна специфицированному количеству байтов.
Возвращает строку кодированных данных, которая представляет маркированный/помеченный объект.
Отменяет захват внешних событий, установленный методом
Разрешает окну с фрэймами захватывать события в страницах, загружаемых с других серверов.
Находит специфицированную текстовую строку в содержимом специфицированного окна.
|
|
|
Переводит браузер на URL, специфицированный в установках пользователя как домашняя страница.
|
Перемещает верхний левый угол окна на специфицированные координаты экрана.
|
|
Устанавливает освобождение захваченных окном событий специфицированного типа, отправляя событие объектам далее по иерархии событий.
Изменяет размеры всего окна, перемещая нижний правый угол окна на специфицированные величины.
Изменяет размеры всего окна на специфицированные внешние высоту и ширину.
Передаёт захваченное событие по нормальной иерархии событий.
|
Прокручивает область просмотра окна на специфицированную величину.
Прокручивает окно до специфицированной координаты, так что специфицированная точка становится левым верхним углом.
Включает или отключает горячие клавиши окна, не имеющего меню.
Вычисляет выражение или вызывает функцию всякий раз по истечении специфицированного количества миллисекунд.
|
Вычисляет выражение или вызывает функцию всякий раз по истечении специфицированного количества миллисекунд.
|
|
---|
Кроме того, этот объект наследует методы watch
и unwatch
из Object
.
Пример 1. Окна, открывающие другие окна. Здесь документ верхнего окна
открывает второе окно window2
и определяет push-кнопки, которые
открывают окно с сообщением, записывает в окно сообщения, закрывает его и закрывает window2
.
Обработчики onLoad
и onUnload
документа, загруженного
в window2
, выводят предупреждающие сообщения при открытии и закрытии окна.
win1.html
, который определяет фрэймы для первого окна,
содержит следующий код:
<HTML>
<HEAD>
<TITLE>window object example: Window 1</TITLE>
</HEAD>
<BODY BGCOLOR="antiquewhite">
<SCRIPT>
window2=open("win2.html","secondWindow",
"scrollbars=yes,width=250, height=400")
document.writeln("<B>The first window has no name: "
+ window.name + "</B>")
document.writeln("<BR><B>The second window is named: "
+ window2.name + "</B>")
</SCRIPT>
<FORM NAME="form1">
<P><INPUT TYPE="button" VALUE="Open a message window"
onClick = "window3=window.open('','messageWindow',
'scrollbars=yes,width=175, height=300')">
<P><INPUT TYPE="button" VALUE="Write to the message window"
onClick="window3.document.writeln('Hey there');
window3.document.close()">
<P><INPUT TYPE="button" VALUE="Close the message window"
onClick="window3.close()">
<P><INPUT TYPE="button" VALUE="Close window2"
onClick="window2.close()">
</FORM>
</BODY>
</HTML>
win2.html
, который определяет содержимое окна window2
,
содержит следующий код:
<HTML>
<HEAD>
<TITLE>window object example: Window 2</TITLE>
</HEAD>
<BODY BGCOLOR="oldlace"
onLoad="alert('Message from ' + window.name + ': Hello, World.')"
onUnload="alert('Message from ' + window.name + ': I\'m closing')">
<B>Some numbers</B>
<UL><LI>one
<LI>two
<LI>three
<LI>four</UL>
</BODY>
</HTML>
Пример 2. Создание фрэймов. Создаются два окна, каждое из 4 фрэймов. В первом окне первый фрэйм содержит кнопки, которые изменяют цвет фона фрэймов в обоих окнах.
framset1.html
, где определяются фрэймы первого окна, содержит следующий код:
<HTML>
<HEAD>
<TITLE>Frames and Framesets: Window 1</TITLE>
</HEAD>
<FRAMESET ROWS="50%,50%" COLS="40%,60%"
onLoad="alert('Hello, World.')">
<FRAME SRC=framcon1.html NAME="frame1">
<FRAME SRC=framcon2.html NAME="frame2">
<FRAME SRC=framcon2.html NAME="frame3">
<FRAME SRC=framcon2.html NAME="frame4">
</FRAMESET>
</HTML>
framset2.html
, где определяются фрэймы второго окна, содержит следующий код:
<HTML>
<HEAD>
<TITLE>Frames and Framesets: Window 2</TITLE>
</HEAD>
<FRAMESET ROWS="50%,50%" COLS="40%,60%">
<FRAME SRC=framcon2.html NAME="frame1">
<FRAME SRC=framcon2.html NAME="frame2">
<FRAME SRC=framcon2.html NAME="frame3">
<FRAME SRC=framcon2.html NAME="frame4">
</FRAMESET>
</HTML>
framcon1.html
, где определяется содержимое первого фрэйма первого
окна, содержит следующий код:
<HTML>
<BODY>
<A NAME="frame1"><H1>Frame1</H1></A>
<P><A HREF="framcon3.htm" target=frame2>Click here</A>
to load a different file into frame 2.
<SCRIPT>
window2=open("framset2.htm","secondFrameset")
</SCRIPT>
<FORM>
<P><INPUT TYPE="button" VALUE="Change frame2 to teal"
onClick="parent.frame2.document.bgColor='teal'">
<P><INPUT TYPE="button" VALUE="Change frame3 to slateblue"
onClick="parent.frames[2].document.bgColor='slateblue'">
<P><INPUT TYPE="button" VALUE="Change frame4 to darkturquoise"
onClick="top.frames[3].document.bgColor='darkturquoise'">
<P><INPUT TYPE="button" VALUE="window2.frame2 to violet"
onClick="window2.frame2.document.bgColor='violet'">
<P><INPUT TYPE="button" VALUE="window2.frame3 to fuchsia"
onClick="window2.frames[2].document.bgColor='fuchsia'">
<P><INPUT TYPE="button" VALUE="window2.frame4 to deeppink"
onClick="window2.frames[3].document.bgColor='deeppink'">
</FORM>
</BODY>
</HTML>
framcon2.html
, где определяется содержимое остальных фрэймов, содержит следующий код:
<HTML>
<BODY>
<P>This is a frame.
</BODY>
</HTML>
framcon3.html
, на который ссылается объект Link
в framcon1.html
,
содержит следующий код:
<HTML>
<BODY>
<P>This is a frame. What do you think?
</BODY>
</HTML>
document
, Frame
Выводит диалог Alert с сообщением и кнопкой OK.
alert(message)
message |
Используйте метод alert
для отображения сообщения, которое не
требует принятия пользователем решения. Аргумент message
специфицирует текст сообщения.
Вы не можете специфицировать заголовок окна alert, но можете использовать метод open
для создания Вашего собственного диалога alert. См. open
.
Функция testValue
проверяет имя введённое пользователем в Text
-объект
формы, чтобы гарантировать, что оно имеет не более 8 символов. Этот пример
использует метод alert
для предупреждения пользователя.
function testValue(textElement) {
if (textElement.length > 8) {
alert("Please enter a name that is 8 characters or less")
}
}
Можно вызвать функцию testValue
в обработчике onBlur
объекта Text
, как здесь:
Name: <INPUT TYPE="text" NAME="userName"
onBlur="testValue(userName.value)">
window.confirm
, window.prompt
Декодирует строку данных, которая была кодировано по методу base-64.
atob(encodedData)
encodedData |
Этот метод декодирует строку данных, которая была кодирована с использованием base-64.
Например, метод window.btoa
принимает
бинарную строку в качестве параметра и возвращает строку, кодированную в base-64.
Вы можете использовать метод window.btoa
для кодирования и передачи данных, а затем воспользоваться методом window.atob
для декодирования. Например, Вы можете закодировать, передать и декодировать символы, такие как ASCII-значения
с 0 по 31.
Кодируется и декодируется строка "Hello, world".
// кодируется строка
encodedData = btoa("Hello, world");
// строка декодируется
decodedData = atob(encodedData);
window.btoa
Отменяет последний шаг истории в любом фрэйме окна верхнего уровня; эквивалентно нажатию кнопки Back в браузере.
back()
Вызов метода back
эквивалентен нажатию кнопки Back в браузере. То
есть back
отменяет последний шаг в любом месте окна верхнего уровня,
был ли он сделан в этом же или в другом фрэйме дерева фрэймов, загруженного из
окна верхнего уровня. По контрасту, метод back
объекта history
переводит текущую историю окна или фрэйма на один шаг назад.
Например, рассмотрим следующий сценарий. Находясь во фрэйме Frame A, Вы
нажимаете кнопку Forward для изменения содержимого фрэйма Frame A. Затем Вы
переходите во Frame B и нажимаете кнопку Forward для изменения содержимого
фрэйма Frame B. Если Вы затем перейдёте обратно во Frame A и вызовете FrameA.back()
,
содержимое фрэйма Frame B изменится (нажатие кнопки Back даст тот же эффект).
Если Вы хотите перейти именно во фрэйме Frame A, используйте FrameA.history.back()
.
Следующие специальные кнопки выполняют ту же операцию, что и кнопка Back браузера:
<P><INPUT TYPE="button" VALUE="< Go Back"
onClick="history.back()">
<P><INPUT TYPE="button" VALUE="> Go Back"
onClick="myWindow.back()">
window.forward
, History.back
Убирает фокус со специфицированного объекта.
blur()
Метод blur
используется для удаления фокуса со специфицированного
окна или фрэйма. Удаление фокуса из окна переводит окно на задний план в большинстве оконных операционных систем.
window.focus
Создаёт ASCII-строку, кодированную по системе base-64, из строковых или двоичных данных.
btoa(stringToEncode)
stringToEncode |
Этот метод принимает двоичную строку ASCII в качестве параметра и возвращает другую ASCII-строку, кодированную с использованием base-64.
Вы можете использовать этот метод для кодирования данных, которые могут иначе
вызвать коммуникационные проблемы, передать их, а затем использовать метод window.atob
для декодирования данных. Например, Вы можете кодировать такие символы, как значения ASCII от 0 до 31.
См. window.atob
.
window.atob
Устанавливает захват окном всех событий специфицированного типа.
captureEvents(eventType1 [|eventTypeN...])
eventType1... eventTypeN | Тип захватываемого события. Допустимые типы событий рассматриваются в Главе 3 "Обработчики Событий". |
Если окно с фрэймами должно захватывать события на страницах, загружаемых с
разных серверов, Вы должны использовать captureEvents
в
маркированном скрипте и предварительно вызвать enableExternalCapture
.
Вы обязаны иметь привилегию UniversalBrowserWrite
. Дополнительно
см. enableExternalCapture
. О безопасности см. книгу
captureEvents
работает в паре с releaseEvents
, routeEvent
и handleEvent
. Дополнительно см.
Отменяет таймаут, установленный методом setInterval
.
clearInterval(intervalID)
intervalID |
Установка таймаута, которая была возвращена предыдущим вызовом метода |
См. setInterval
.
См. setInterval
.
window.setInterval
Отменяет таймаут, установленный методом setTimeout
.
clearTimeout(timeoutID)
timeoutID |
Установка таймаута, которая была возвращена предыдущим вызовом метода |
См. setTimeout
.
См. setTimeout
.
window.clearInterval
, window.setTimeout
Закрывает специфицированное окно.
JavaScript 1.0: закрывает любое окно. JavaScript 1.1: закрывает только окна, открытые JavaScript. JavaScript 1.2: должны использоваться маркированные скрипты для безусловного закрытия окна. |
close()
Для безусловного закрытия окна Вы должны иметь привилегию UniversalBrowserWrite
. О безопасности см. книгу
Метод close
закрывает специфицированное окно. Если Вы вызываете close
без специфицирования windowReference
, JavaScript закрывает текущее окно.
Метод close
закрывает только окна, открытые JavaScript с
использованием метода open
. Если Вы попытаетесь закрыть любое
другое окно, генерируется диалог confirm, который предлагает подтвердить
закрытие окна. Это сделано для предотвращения "mail bombs/почтовых бомб",
содержащих self.close()
. Однако, если окно содержит только один
документ (текущий) в истории текущей сессии, метод close выполняется без
подтверждения. Особый случай - с окнами one-off, которые должны открыть другие окна и только затем закрыться.
В обработчиках событий Вы обязаны специфицировать window.close()
вместо close()
. Учитывая область видимости static-объектов в JavaScript,
вызов close()
без специфицирования имени объекта эквивалентен document.close()
.
Пример 1. Любая из следующих строк закрывает текущее окно:
window.close()
self.close()
close()
Пример 2: Закрытие главного окна браузера.
top.opener.close()
Пример 3. Здесь закрывается окно messageWin
:
messageWin.close()
Предполагается, что окно было открыто примерно в такой манере:
messageWin=window.open("")
window.closed
, window.open
Специфицирует, закрыто ли окно.
Свойство closed
это Булево значение, которое специфицирует, закрыто
ли окно. Когда окно закрывается, объект window
, представляющий его,
продолжает существовать, и его свойство closed
устанавливается в true.
Используйте метод closed
для определения, открыто ли в данный
момент окно, которое Вы ранее открыли и на которое Вы имеете ссылку (из return-значения
метода window.open
). Если окно закрыто, Вы не должны пытаться манипулировать им.
Пример 1. Следующий код открывает окно win1
, затем позже
проверяет, было ли оно закрыто. Вызываемая функция зависит от того, закрыто ли окно win1
.
win1=window.open('opener1.html','window1','width=300,height=300')
...
if (win1.closed)
function1()
else
function2()
Пример 2. Определяется, закрыто ли окно, открывшее текущее окно, и вызывается соответствующая функция.
if (window.opener.closed)
function1()
else
function2()
window.close
, window.open
Отображает диалоговое окно Confirm со специфицированным сообщением и кнопками OK и Cancel.
confirm(message)
message |
Используйте confirm
для запроса у пользователя решения, которое
требует OK/подтверждения или Cancel/отмены. Аргумент message
специфицирует текст сообщения. Метод confirm
возвращает true, если
нажата кнопка OK, и false, если нажата Cancel.
Вы не можете специфицировать заголовок окна confirm, но можете использовать
метод open
для создания Вашего собственного диалога confirm.
См. open
.
Метод confirm
в функции confirmCleanUp
используется
для подтверждения закрытия приложения. Если пользователь выбрал OK, специальная
функция cleanUp
закрывает приложение.
function confirmCleanUp() {
if (confirm("Are you sure you want to quit this application?")) {
cleanUp()
}
}
Вы можете вызвать функцию confirmCleanUp
в обработчике onClick
кнопки, как показано в этом примере:
<INPUT TYPE="button" VALUE="Quit" onClick="confirmCleanUp()">
window.alert
, window.prompt
Объект, дающий доступ к возможностям шифрования в Navigator'е.
Объект crypto
доступен только как свойство объекта window
;
он предоставляет доступ к методам, которые поддерживают возможности шифровки в Navigator'е.
window.crypto.random
, window.crypto.signText
Возвращает псевдослучайную строку, размер которой равен специфицированному количеству байтов.
crypto.random(numberOfBytes)
numberOfBytes | Количество байтов псевдослучайных данных, возвращаемых методом. |
Этот метод генерирует произвольную строку данных, размер которой специфицируется параметром numberOfBytes
.
Функция возвращает строку длиной 16 байт.
function getRandom() {
return crypto.random(16)
}
Math.random
Возвращает строку кодированных данных, которая представляет маркированный объект.
crypto.signText
(text, selectionStyle [, authority1 [, ... authorityN]])
Метод signText
спрашивает пользователя о проверке строки text
путём присоединения к ней цифровой подписи. Если параметр selectionStyle
установлен в ask
, signText
выводит диалог, и
пользователь обязан интерактивно выбрать сертификат для проверки текста. Если selectionStyle
is
установлен в auto
, Navigator пытается автоматически выбрать сертификат.
Используйте метод signText
для отправки кодированной подписи на
сервер; сервер декодирует подпись и проверяет её. Если signText
терпит неудачу, он возвращает один из следующих error-кодов:
error:noMatchingCert
- пользовательский сертификат не соответствует
ни одному из сертификатов, требуемых в диапазоне от authority1
до authorityN.
.error:userCancel
- пользователь отменил диалоговое окно подписи без отправки сертификата.error:internalError
- возникла внутренняя ошибка.Сообщение по умолчанию, выводимое в статусной строке в нижней части окна.
JavaScript 1.1.
Это свойство разрушено/запорчено по умолчанию. О разрушении данных см. книгу
Сообщение defaultStatus
появляется, если в статусной строке ничего
больше нет. Не путайте свойство defaultStatus
со свойством status
.
Свойство status
отражает приоритетное или временной сообщение в
статусной строке, такое как при возникновении события mouseOver
при проведении указателя мыши над якорем.
Вы можете установить свойство defaultStatus
в любое время. Вы
обязаны возвращать true, если хотите устанавливать свойство defaultStatus
в обработчиках onMouseOut
или onMouseOver
.
Функция statusSetter
устанавливает свойства status
и defaultStatus
в обработчике onMouseOver
:
function statusSetter() {
window.defaultStatus = "Click the link for the Netscape home page"
window.status = "Netscape home page"
}
<A HREF="http://home.netscape.com"
onMouseOver = "statusSetter(); return true">Netscape</A>
Заметьте, что в это примере обработчик onMouseOver
возвращает true.
Вы обязаны возвращать true, если хотите устанавливать defaultStatus
и status
в обработчиках событий.
window.status
Отменяет захват внешних событий, установленный методом enableExternalCapture
.
disableExternalCapture()
Содержит информацию о текущем документе и предоставляет методы для отображения пользователю HTML-вывода.
Значением этого свойства является ассоциированный объект document
окна.
Позволяет окну с фрэймами захватывать события на страницах, загружаемых из других location (серверов).
enableExternalCapture()
Используйте этот метод в маркированном скрипте, запрашивающем привилегии UniversalBrowserWrite
,
и перед вызовом метода captureEvents
.
Если Communicator видит дополнительные скрипты, которые ухудшают работу
действующих принципалов контейнера, он отключает захват внешних событий.
Дополнительные вызовы enableExternalCapture
(после получения
привилегии UniversalBrowserWrite
при уменьшенном наборе принципалов)
могут выполняться для возобновления захвата внешних событий.
Окно может захватывать все события Click
, возникающие в его фрэймах.
<SCRIPT ARCHIVE="myArchive.jar" ID="2">
function captureClicks() {
netscape.security.PrivilegeManager.enablePrivilege(
"UniversalBrowserWrite");
enableExternalCapture();
captureEvents(Event.CLICK);
...
}
</SCRIPT>
window.disableExternalCapture
, window.captureEvents
Находит специфицированную текстовую строку в содержимом специфицированного окна.
find([string[, caseSensitive, backward]])
true, если строка найдена; иначе - false.
Когда string специфицирован, браузер выполняет поиск сверху вниз без учёта регистра символов. Если параметр string не специфицирован, метод выводит диалог Find, позволяющий пользователю ввести строку для поиска.
Передаёт фокус специфицированному объекту.
focus()
Используйте метод focus
для перехода к специфицированному окну или
фрэйму и передаче ему фокуса. Передача фокуса окну переводит его на передний план в большинстве оконных операционных систем.
В JavaScript 1.1, на некоторых платформах, метод focus
передаёт
фокус фрэйму, но этот фокус визуально не проявляется (например, рамка фрэйма не темнеет).
Функция checkPassword
подтверждает, что пользователь ввёл верный
пароль. Если введён неправильный пароль, метод focus
возвращает
фокус объекту Password
, а метод select
выделяет его, чтобы пользователь мог повторно ввести пароль.
function checkPassword(userPass) {
if (badPassword) {
alert("Please enter your password again.")
userPass.focus()
userPass.select()
}
}
Предполагается, что объект Password
определён так:
<INPUT TYPE="password" NAME="userPass">
window.blur
Переводит браузер к следующему URL в текущем списке history; эквивалентно нажатию кнопки Forward в браузере.
history.forward()
forward()
Этот метод выполняет такое же действие, что нажатие кнопки Forward в браузере.
Метод forward
эквивалентен history.go(1)
.
При использовании с объектом Frame, forward
работает так: во фрэйме Frame A
вы нажимаете кнопку Back для изменения содержимого фрэйма Frame A. Затем
переходите во фрэйм Frame B и нажимаете кнопку Back для изменения содержимого
фрэйма Frame B. Если Вы перейдёте обратно в Frame A и вызовете FrameA.forward()
,
изменится содержимое фрэйма Frame B (нажатие кнопки Forward даст тот же эффект).
Если Вы хотите перейти во фрэйме Frame A, используйте FrameA.history.forward()
.
Следующая кнопка выполняет то же действие, что и кнопка Forward браузера:
<P><INPUT TYPE="button" VALUE="< Go Forth"
onClick="history.forward()">
<P><INPUT TYPE="button" VALUE="> Go Forth"
onClick="myWindow.forward()">
window.back
Массив объектов, соответствующих дочерним фрэймам (созданных тэгами FRAME
) в порядке расположения в исходном коде.
Вы можете обратиться к дочерним фрэймам окна, используя массив frames
.
Этот массив содержит вхождения для всех дочерних фрэймов (созданных тэгами FRAME
)
в окне, содержащем тэг FRAMESET
; вхождения расположены в порядке исходного кода.
Например, если окно содержит три фрэйма со значениями атрибутов NAME
fr1
, fr2
и fr3
, Вы можете обратиться к этим объектам в массиве images
так:
parent.frames["fr1"]
parent.frames["fr2"]
parent.frames["fr3"]
parent.frames[0]
parent.frames[1]
parent.frames[2]
Можно определить общее количество дочерних фрэймов окна через свойство length
в самом window
или в массиве frames
.
Значение каждого элемента массива frames
равно <object nameAttribute>
,
где nameAttribute
это атрибут NAME
данного фрэйма.
Вызывает обработчик для специфицированного события.
handleEvent(event)
event | Имя события, для которого специфицированный объект имеет обработчик. |
handleEvent
работает в паре с captureEvents
, releaseEvents
и routeEvent
. Дополнительно см.
Содержит информацию о URL, которые клиент посетил в окне.
Значением этого свойства является ассоциированный объект History
окна.
Переводит браузер на URL, специфицированный в настройках как домашняя страница пользователя; эквивалентно нажатию пользователем кнопки Home браузера.
home()
Этот метод выполняет то же действие, что и при нажатии в браузере кнопки Home.
Специфицирует вертикальные размеры в пикселах области содержимого окна.
Для создания окна размером менее 100 x 100 пикселов установите это свойство в маркированном скрипте.
Для установки внутренней высоты окна размером менее 100 x 100 или больше, чем
экран может вместить, Вам необходима привилегия UniversalBrowserWrite
. О безопасности см. книгу
window.innerWidth
, window.outerHeight
,
window.outerWidth
Специфицирует горизонтальные размеры в пикселах области содержимого окна.
Для создания окна размером менее 100 x 100 пикселов установите это свойство в маркированном скрипте.
Для установки внутренней ширины окна размером менее 100 x 100 или больше, чем
экран может вместить, Вам необходима привилегия UniversalBrowserWrite
. О безопасности см. книгу
window.innerHeight
, window.outerHeight
,
window.outerWidth
Количество дочерних фрэймов окна.
Это свойство даст тот же результат, что и свойство length
массива frames
.
Содержит информацию о текущем URL.
Значением этого свойства является ассоциированный объект Location
окна.
Представляет адресную строку окна браузера (область, содержащую области закладки и URL).
Само значение свойства locationbar
имеет свойство visible
.
Если оно true, адресная строка видна; если false, она скрыта.
Установка значения свойства visible
адресной строки требует
наличия привилегии UniversalBrowserWrite
. О безопасности см. книгу
Следующий пример создаёт окно "chromeless" (в окне chromeless отсутствуют панель утилит, полосы прокрутки, статусные области и т.д., как в диалоговом окне), пряча большую часть панелей пользовательского интерфейса:
self.menubar.visible=false;
self.toolbar.visible=false;
self.locationbar.visible=false;
self.personalbar.visible=false;
self.scrollbars.visible=false;
self.statusbar.visible=false;
Представляет строку меню окна. Эта область содержит ниспадающие меню браузера, такие как File, Edit, View, Go, Communicator и т.д.
Значение свойства menubar
само имеет свойство visible
.
Если оно true, строка меню видна; если false, меню скрыто.
Установка значения свойства visible
строки меню требует
наличия привилегии UniversalBrowserWrite
. О безопасности см. книгу
Следующий пример создаёт окно "chromeless" (в окне chromeless отсутствуют панель утилит, полосы прокрутки, статусные области и т.д., как в диалоговом окне), пряча большую часть панелей пользовательского интерфейса:
self.menubar.visible=false;
self.toolbar.visible=false;
self.locationbar.visible=false;
self.personalbar.visible=false;
self.scrollbars.visible=false;
self.statusbar.visible=false;
Перемещает окно относительно его текущей позиции на специфицированное количество пикселов.
moveBy(horizontal, vertical)
horizontal | Количество пикселов, на которое окно перемещается по горизонтали. |
vertical | Количество пикселов, на которое окно перемещается по вертикали. |
Этот метод перемещает окно, прибавляя или вычитая специфицированное количество пикселов к текущему положению.
Выход за пределы одной из границ экрана (и скрытие части или всего окна) требует
маркированного JavaScript, иначе окно не будет перемещаться за пределы экрана.
Для этого необходимо иметь привилегию UniversalBrowserWrite
. О безопасности см. книгу
Чтобы переместить текущее окно на 5 пикселов вверх (ось x) и на 10 пикселов вправо (ось у) от текущей позиции, используйте такой оператор:
self.moveBy(-5,10); // относительное позиционирование
window.moveTo
Перемещает верхний левый угол окна на специфицированные координаты экрана.
moveTo(x-coordinate, y-coordinate)
x-coordinate | |
y-coordinate |
Этот метод перемещает окно в абсолютное положение, указанное его параметрами (в пикселах). Начало отсчёта по осям ведётся от абсолютной позиции (0,0); это верхний левый угол экрана монитора.
Выход за пределы одной из границ экрана (и скрытие части или всего окна) требует
маркированного JavaScript, иначе окно не будет перемещаться за пределы экрана.
Для этого необходимо иметь привилегию UniversalBrowserWrite
. О безопасности см. книгу
Для перемещения текущего окна на 25 пикселов от верхней границы экрана (ось x) и на 10 пикселов от левого края экрана (ось y) используйте такой оператор:
self.moveTo(25,10); // абсолютное позиционирование
window.moveBy
Строка, специфицирующая имя окна.
Только для чтения (2.0); Изменяемое (в более поздних версиях) | |
JavaScript 1.1.
Это свойство разрушено/запорчено по умолчанию. О разрушении данных см. книгу
В JavaScript 1.0 NAME
было свойством только для чтения/read-only. В
последующих версиях это свойство может изменяться Вашим кодом. Это даёт
возможность присваивать имя окну верхнего уровня.
Первый оператор создаёт окно netscapeWin
. Второй оператор выводит
значение "netscapeHomePage"
в диалоге Alert, поскольку "netscapeHomePage"
является значением аргумента windowName
окна netscapeWin
.
netscapeWin=window.open("http://home.netscape.com","netscapeHomePage")
alert(netscapeWin.name)
Специфицирует, выполняются ли обновления окна в offscreen-буфере.
По умолчанию Navigator автоматически определяет, выполняются ли обновления окна
в offscreen-буфере, а затем отображаются в окне. Вы можете либо полностью
отключить буферизацию, либо "потребовать" от Navigator'а
буферизовать обновления, установив в offscreenBuffering
значение false
или true
, соответственно.
Буферизация может уменьшить мигание экрана, которое возникает при обновлении окна, но это требует дополнительных системных ресурсов.
Открывает новое окно web-браузера.
open(URL, windowName[, windowFeatures])
URL |
Строка, специфицирующая URL для открытия в новом окне. См. в |
windowName |
Строка, специфицирующая имя окна, используемое в атрибуте |
windowFeatures | Строка, специфицирующая список (с разделёнием запятыми), в которой определяется, создавать или нет различные стандартные параметры окна. Эти опции рассматриваются в следующем разделе. |
В обработчиках событий Вы обязаны специфицировать window.open()
вместо open()
. Из-за ограничений области видимости static-объектов
JavaScript, вызов open()
без специфицирования имени объекта
эквивалентен document.open()
.
Метод open
открывает новое окно Web-браузера на стороне клиенте,
что аналогично выбору меню New->Navigator Window из File.
Аргумент URL
специфицирует URL - содержимое нового окна. Если URL
это пустая строка, создаётся новое пустое окно.
Вы можете использовать метод open
в существующем окне, и, если Вы
передаёте в качестве URL пустую строку, Вы получите ссылку на существующее окно,
но не загрузите в него ничего. Вы можете, например, найти свойства в окне.
windowFeatures
это строка по выбору/optional,
содержащая список разделённых запятыми опций нового окна (не включайте в список
пробелы). После открытия окна вы не сможете использовать JavaScript для
изменения windowFeatures.
Вы можете специфицировать:
Многие из этих опций (как указано выше) могут иметь значение yes или no. Для
этих опций можно использовать 1 вместо yes и 0 вместо no. Если Вы хотите
включить опцию, Вы можете просто указать имя опции в строке windowFeatures
.
Если windowName
не специфицирует существующее окно и Вы не
предоставляете параметр windowFeatures
, все опции, имеющие выбор yes/no,
устанавливаются по умолчанию в yes. Однако, если Вы предоставляете параметр windowFeatures
,
то опции titlebar
и hotkeys
останутся yes по умолчанию,
но другие опции, имеющие выбор yes/no, будут по умолчанию no.
Например, все следующие операторы включают опцию toolbar и отключают все другие Булевы опции:
open("", "messageWindow", "toolbar")
open("", "messageWindow", "toolbar=yes")
open("", "messageWindow", "toolbar=1")
Следующий оператор включает опции location и directories и отключает все остальные Булевы опции:
open("", "messageWindow", "toolbar,directories=yes")
Однако поведение опций alwaysLowered
, alwaysRaised
и z-lock
зависит от иерархии окон на конкретной платформе.
Например, в Windows окно браузера alwaysLowered
или z-locked
находится ниже всех остальных окон всех приложений. В Macintosh окно браузера alwaysLowered
находится ниже остальных окон, но не обязательно ниже окон других
приложений. Аналогично для окон alwaysRaised
.
Вы можете использовать open
для открытия нового окна, а затем - в
этом новом окне - для открытия другого окна, и так далее. Таким способом Вы
можете составить цепочку открытых окон, каждое из которых имеет свойство opener
,
указывающее на окно, открывшее данное окно.
Communicator допускает максимум 100 открытых окон. Если Вы открыли окно window2
из окна window1
и затем завершили работу с window1
,
установите свойство opener
окна window2
в null
. Это позволит JavaScript убрать мусор - окно window1
.
Если Вы не установите свойство opener
в null
, объект window1
останется, даже если он реально уже не нужен.
Для выполнения следующих операций Вам нужно иметь привилегию UniversalBrowserWrite
:
innerWidth
, innerHeight
, outerWidth
и outerHeight
.screenX
и screenY
.titlebar
.alwaysRaised
, alwaysLowered
или z-lock
для любых установок.О безопасности см. книгу
Пример 1. Функция windowOpener
открывает окно и использует
методы write
для вывода сообщения:
function windowOpener() {
msgWindow=window.open("","displayWindow","menubar=yes")
msgWindow.document.write
("<HEAD><TITLE>Message window</TITLE></HEAD>")
msgWindow.document.write
("<CENTER><BIG><B>Hello, world!</B></BIG></CENTER>")
}
Пример 2. Это обработчик onClick
, который открывает новое
клиентское окно, выводя содержимое, специфицированное в файле sesame.html
.
Окно открывается со специфицированными установками опций; все другие опции будут false, поскольку не специфицированы.
<FORM NAME="myform">
<INPUT TYPE="button" NAME="Button1" VALUE="Open Sesame!"
onClick="window.open ('sesame.html', 'newWin',
'scrollbars=yes,status=yes,width=300,height=300')">
</FORM>
window.close
Специфицирует окно вызывающего документа, если окно открывается методом open
.
Если исходный документ открывает целевое окно методом open
,
свойство opener
специфицирует окно исходного документа. Вычисляйте
свойство opener
целевого окна.
Это свойство существует до выгрузки документа в открытом окне.
Вы можете изменить свойство opener
в любое время.
Можно использовать window.open
для открытия
нового окна, а затем использовать window.open
для открытия другого окна, и так далее. Таким способом Вы можете составить
цепочку открытых окон, каждое из которых имеет свойство opener
,
указывающее на окно, открывшее данное окно.
Communicator допускает максимум 100 открытых окон. Если Вы открыли окно window2
из окна window1
и затем завершили работу с window1
,
установите свойство opener
окна window2
в null
. Это позволит JavaScript убрать мусор - окно window1
.
Если Вы не установите свойство opener
в null
, объект window1
останется, даже если он реально уже не нужен.
Пример 1: Закрытие opener'а. Этот код закрывает
окно, которое открыло текущее окно. Если opener-окно закрывается, opener
остаётся без изменений. Однако window.opener.name
вычисляется теперь в undefined.
window.opener.close()
Пример 2: Закрытие главного окна браузера.
top.opener.close()
Пример 3: Вычисление имени opener'а. Окно может определить имя своего opener'а так:
document.write("<BR>opener property is " + window.opener.name)
Пример 4: Изменение значения opener. Этот код изменяет значение свойства opener
в null. После выполнения этого кода вы не сможете закрыть opener-окно так, как это делается в Примере 1.
window.opener=null
Пример 5: Изменение значения свойства через opener. Изменяется цвет фона
окна, специфицированного свойством opener
.
window.opener.document.bgColor='bisque'
window.close
, window.open
Специфицирует вертикальный размер в пикселах внешней границы окна.
Внешняя граница включает полосы прокрутки, статусную строку, панели toolbars и другой "chrome" (элементы пользовательского интерфейса рамки окна). Для создания окна размером менее 100 x 100 пикселов, установите это свойство в маркированном скрипте.
window.innerWidth
, window.innerHeight
, window.outerWidth
Специфицирует горизонтальный размер в пикселах внешней границы окна.
Внешняя граница включает полосы прокрутки, статусную строку, панели toolbar и другой "chrome" (элементы пользовательского интерфейса рамки окна). Для создания окна размером менее 100 x 100 пикселов, установите это свойство в маркированном скрипте.
window.innerWidth
, window.innerHeight
, window.outerHeight
Предоставляет текущую x-позицию в пикселах видимой страницы окна.
Свойство pageXOffset
предоставляет текущую x-позицию страницы
относительно верхнего левого угла области содержимого окна. Это свойство
используется, если Вам необходимо найти текущую позицию прокручиваемой страницы
перед использованием scrollTo
или scrollBy
.
Этот пример возвращает x-позицию видимой страницы.
x = myWindow.pageXOffset
window.pageYOffset
Предоставляет текущую у-позицию в пикселах видимой страницы окна.
Свойство pageYOffset
предоставляет текущую у-позицию страницы
относительно верхнего левого угла области содержимого окна. Это свойство
используется, если Вам необходимо найти текущую позицию прокручиваемой страницы
перед использованием scrollTo
или scrollBy
.
Этот пример возвращает у-позицию видимой страницы.
x = myWindow.pageYOffset
window.pageXOffset
Свойство parent
это окно или фрэйм, чей frameset/набор фрэймов содержит текущий фрэйм.
Это свойство имеет смысл только для фрэймов; то есть для окон, которые не являются окнами верхнего уровня.
Свойство parent
ссылается на тэг FRAMESET
окна фрэйма.
Дочерние фрэймы в данном frameset ссылаются на родственные фрэймы через
использование parent
вместо имени окна одним из следующих способов:
parent.frameName
parent.frames[index]
Например, если четвёртый фрэйм набора имеет NAME="homeFrame"
,
фрэймы-родственники могут ссылаться на этот фрэйм через использование parent.homeFrame
или parent.frames[3]
.
Вы можете использовать parent.parent
для обращения к фрэйму или
окну-"дедушке", если тэг FRAMESET
вложен в дочерний фрэйм.
Значением свойства parent
является
<object nameAttribute>
где nameAttribute
это атрибут NAME
, если родитель
является фрэймом, или внутренняя ссылка, если родителем является окно.
См. примеры для Frame
.
Представляет персональную панель окна браузера (называемую также панелью директорий). Эту область пользователь может использовать для быстрого доступа к определённым закладкам.
Значение свойства personalbar
само имеет свойство visible
.
Если оно true, персональная панель отображается; если false, панель скрыта.
Установка значения свойства visible
персональной панели требует
наличия привилегии UniversalBrowserWrite
. О безопасности см. книгу
Следующий пример делает окно, на которое ссылаются, "chromeless" (в chromeless-окнах нет панелей toolbars, полос прокрутки, статусной области и т.д., что делает их похожими на диалоговые окна), пряча большинство из панелей интерфейса пользователя:
self.menubar.visible=false;
self.toolbar.visible=false;
self.locationbar.visible=false;
self.personalbar.visible=false;
self.scrollbars.visible=false;
self.statusbar.visible=false;
print()
Выводит диалог Prompt с сообщением и полем для ввода.
prompt(message[, inputDefault])
message | |
inputDefault | Строка или целое число представляющее значение по умолчанию поля ввода. |
Используйте метод prompt
для вывода диалогового окна, принимающего ввод от пользователя.
Если Вы не специфицируете начальное значение для inputDefault
, диалог показывает
<undefined>
.
Вы не можете специфицировать заголовок диалога prompt, но можете использовать метод
open
для создания Вашего собственного prompt-диалога.
См. open
.
prompt("Enter the number of cookies you want to order:", 12)
window.alert
, window.confirm
Устанавливает освобождение объектами window или document захваченных событий специфицированного типа, отправляя событие следующим объектам по иерархии событий.
ПРИМЕЧАНИЕ: Если первоначальной целью/target события является окно, это окно получает событие, даже если оно имеет установку освобождать события этого типа.
releaseEvents(eventType1 [|eventTypeN...])
eventType1... eventTypeN | Тип захватываемых событий. Типы событий рассматриваются в Главе 3, "Обработчики Событий". |
releaseEvents
работает вместе с captureEvents
, routeEvent
и handleEvent
.
Дополнительно см.
Изменяет размеры всего окна, перемещая нижний правый угол окна на специфицированные величины.
resizeBy(horizontal, vertical)
horizontal | Количество пикселов, на которое окно изменяет размер по горизонтали. |
vertical | Количество пикселов, на которое окно изменяет размер по вертикали. |
Этот метод изменяет размеры окна через установку свойств outerWidth
и outerHeight
. Верхний левый угол остаётся
на месте, а нижний правый угол перемещается.
resizeBy
перемещает окно, прибавляя или вычитая специфицированное
количество пикселов к координатам текущей позиции правого нижнего угла.
Выход за любую границу экрана (для скрытия части или всего окна) требует
маркированного JavaScript, иначе окно не будет перемещаться за пределы экрана.
Кроме того, окна имеют форсированный минимальный размер 100 x 100 пикселов;
изменение размеров окна меньше этого минимума требует маркированного JavaScript.
Для этого Вам нужна привилегия UniversalBrowserWrite
. О безопасности см. книгу
Чтобы сделать текущее окно на 5 пикселов уже и на 10 пикселов выше, используйте такой оператор:
self.resizeBy(-5,10); // относительное позиционирование
window.resizeTo
resizeTo(outerWidth, outerHeight)
outerWidth | |
outerHeight |
Этот метод изменяет размеры окна, устанавливая его свойства outerWidth
и outerHeight
. Верхний левый угол остаётся на месте, а правый нижний угол перемещается.
resizeBy
перемещает на специфицированную позицию. Началом осей является абсолютная позиция (0,0); это левый верхний угол дисплея.
Выход за любую границу экрана (для скрытия части или всего окна) требует
маркированного JavaScript, иначе окно не будет перемещаться за пределы экрана.
Кроме того, окна имеют форсированный минимальный размер 100 x 100 пикселов;
изменение размеров окна меньше этого минимума требует маркированного JavaScript.
Для этого Вам нужна привилегия UniversalBrowserWrite
. О безопасности см. книгу
Чтобы сделать окно шириной 225 пикселов и высотой 200 пикселов, используйте этот оператор:
self.resizeTo(225,200); // абсолютное позиционирование
window.resizeBy
Передаёт захваченное событие по нормальной цепи иерархии.
routeEvent(event)
event |
Если субобъект (document или layer) также захватывает событие, событие посылается этому объекту. Иначе оно посылается своей изначальной цели.
routeEvent
работает вместе с captureEvents
, releaseEvents
и handleEvent
. Дополнительно см.
Специфицирует x-координату левого угла окна.
Установка значения свойства screenX
требует наличия привилегии UniversalBrowserWrite
. О безопасности см. книгу
window.screenY
Специфицирует y-координату верхнего угла окна.
Установка значения свойства screenY
требует наличия
привилегии UniversalBrowserWrite
. О безопасности см. книгу
window.screenX
Прокручивает окно до специфицированных координат.
В JavaScript 1.2, scroll
больше не используется и заменён на scrollTo
.
scrollTo
расширяет возможности метода scroll
.
scroll
оставлен для обеспечения обратной совместимости.
Представляет вертикальную и горизонтальную полосы прокрутки окна браузера для области документа.
Значение свойства scrollbars
само имеет свойство visible
.
Если оно true, видны обе полосы прокрутки; если false, они скрыты.
Установка значения свойства visible
полос прокрутки требует
наличия привилегии UniversalBrowserWrite
. О безопасности см. книгу
Следующий пример делает окно, на которое ссылаются, "chromeless" (в chromeless-окнах нет панелей toolbar, полос прокрутки, статусной области и т.д., что делает их похожими на диалоговые окна), пряча большинство из панелей интерфейса пользователя:
self.menubar.visible=false;
self.toolbar.visible=false;
self.locationbar.visible=false;
self.personalbar.visible=false;
self.scrollbars.visible=false;
self.statusbar.visible=false;
Прокручивает область просмотра окна на специфицированную величину.
scrollBy(horizontal, vertical)
horizontal | Количество пикселов, на которое область просмотра прокручивается по горизонтали. |
vertical | Количество пикселов, на которое область просмотра прокручивается по вертикали. |
Этот метод прокручивает содержимое окна, если часть содержимого находится за пределами окна.
scrollBy
прокручивает окно, добавляя или вычитая специфицированное количество пикселов относительно текущей позиции.
Чтобы этот метод работал, свойство visible
для опции window.scrollbars
обязано быть true.
Для прокрутки текущего окна на 5 пикселов влево и на 30 пикселов вниз от текущей позиции, используйте:
self.scrollBy(-5,30); // относительное позиционирование
window.scrollTo
Прокручивает область просмотра окна таким образом, что специфицированная точка становится левым верхним углом.
scrollTo(x-coordinate, y-coordinate)
x-coordinate | Целое число, представляющее x-координату области просмотра в пикселах. |
y-coordinate | Целое число, представляющее у-координату области просмотра в пикселах. |
scrollTo
заменил scroll
. scroll
оставлен для обеспечения обратной совместимости.
Метод scrollTo
прокручивает содержимое окна, если имеются невидимые
части за пределами окна. Чтобы этот метод работал, свойство visible
для опции window.scrollbars
обязано быть true.
Пример 1: Прокрутка текущей области просмотра. Для прокрутки окна к левой границе и на 20 пикселов вниз от верха окна, используйте этот оператор:
self.scrollTo(0,20); // абсолютное позиционирование
Пример 2: Прокрутка другой области просмотра. Это код, расположенный в
одном фрэйме, прокручивает область просмотра другого фрэйма. Два объекта Text
дают пользователю возможность специфицировать координаты x и y. если
пользователь щёлкает по кнопке Go, документ в frame2
прокручивается на специфицированные координаты.
<SCRIPT>
function scrollIt(form) {
var x = parseInt(form.x.value)
var y = parseInt(form.y.value)
parent.frame2.scrollTo(x, y)
}
</SCRIPT>
<BODY>
<FORM NAME="myForm">
<P><B>Specify the coordinates to scroll to:</B>
<BR>Horizontal:
<INPUT TYPE="text" NAME=x VALUE="0" SIZE=4>
<BR>Vertical:
<INPUT TYPE="text" NAME=y VALUE="0" SIZE=4>
<BR><INPUT TYPE="button" VALUE="Go"
onClick="scrollIt(document.myForm)">
</FORM>
window.scrollBy
Свойство self
это синоним текущего окна.
Свойство self
ссылается на текущее окно. То есть значение этого свойства является синонимом самого объекта.
Используйте свойство self
для устранения неоднозначности свойства window
при вызове из формы или элемента формы с тем же именем. Вы можете также
использовать свойство self
, для того чтобы сделать Ваш код более читабельным.
Значением свойства self
является
<object nameAttribute>
где nameAttribute
это атрибут NAME
, если self
ссылается на фрэйм, или внутренняя ссылка, если self
ссылается на окно.
В этом примере self.status
используется для установки свойства status
текущего окна. Такое использование устраняет неоднозначность свойства status
текущего окна при вызове из формы или элемента формы с названием status
внутри текущего окна.
<A HREF=""
onClick="this.href=pickRandomURL()"
onMouseOver="self.status='Pick a random URL' ; return true">
Go!</A>
Включает или отключает "горячие клавиши" в данном окне, которое не имеет меню.
setHotKeys(trueOrFalse)
trueOrFalse |
Для включения/отключения горячих клавиш Вам нужно иметь привилегию UniversalBrowserWrite
. О безопасности см. книгу
По умолчанию горячие клавиши отключены в окне, в котором отсутствует меню. С
помощью метода setHotKeys
вы можете явным образом
включать/отключать все горячие клавиши, за исключением security и quit, которые всегда включены.
Можно также специфицировать включение горячих клавиш во время создания окна,
если используется метод window.open
.
window.open
Вычисляет выражение или вызывает функцию каждый раз при истечении
специфицированного количества миллисекунд, пока не будет отменён вызовом метода clearInterval
.
setInterval(expression, msec)
setInterval(function, msec[, arg1[, ..., argN]])
Таймаут работает до момента уничтожения ассоциированного окна или фрэйма или до
отмены интервала методом clearInterval
.
setInterval
не нарушает выполнение скрипта. Скрипт продолжается
сразу после выполнения метода (не ожидая повторения интервала). Его вызов просто откладывает будущее событие.
Этот код отображает текущее время в объекте Text
. В функции startclock
вызов метода setInterval
заставляет вызывать функцию showtime
каждую секунду для обновления показаний часов. Заметьте, что функция startclock
и метод setInterval
вызываются только один раз каждый.
<SCRIPT LANGUAGE="JavaScript">
var timerID = null
var timerRunning = false
function stopclock(){
if(timerRunning)
clearInterval(timerID)
timerRunning = false
}
function startclock(){
// Убедиться, что часы остановлены
stopclock()
timerID = setInterval("showtime()",1000)
timerRunning = true
}
function showtime(){
var now = new Date()
var hours = now.getHours()
var minutes = now.getMinutes()
var seconds = now.getSeconds()
var timeValue = "" + ((hours > 12) ? hours - 12 : hours)
timeValue += ((minutes < 10) ? ":0" : ":") + minutes
timeValue += ((seconds < 10) ? ":0" : ":") + seconds
timeValue += (hours >= 12) ? " P.M." : " A.M."
document.clock.face.value = timeValue
}
</SCRIPT>
<BODY onLoad="startclock()">
<FORM NAME="clock" onSubmit="0">
<INPUT TYPE="text" NAME="face" SIZE=12 VALUE ="">
</FORM>
</BODY>
window.clearInterval
, window.setTimeout
Специфицирует, может ли пользователь изменять размеры окна.
setResizable(trueOrFalse)
trueOrFalse | Булево значение, специфицирующее, может ли пользователь изменять размеры окна: |
По умолчанию новое окно Navigator'а может менять
размеры. Методом setResizable
Вы можете явно разрешить или
запретить пользователю изменять размеры окна. Не все операционные системы поддерживают этот метод.
Вы можете также специфицировать, может ли окно изменять размеры во время
создания, если используется метод window.open
.
window.open
Вычисляет выражение или вызывает функцию по истечении специфицированного количества миллисекунд.
setTimeout(expression, msec)
setTimeout(function, msec[, arg1[, ..., argN]])
Метод setTimeout
вычисляет выражение или вызывает функцию по
истечении специфицированного количества времени. Он не выполняется повторно.
Например, если метод setTimeout
специфицирует 5 секунд, через пять
секунд вычисляется выражение или вызывается функция, но не каждые пять секунд.
Для выполнения повторяющихся таймаутов используйте метод setInterval
.
setTimeout
не нарушает выполнение скрипта. Скрипт продолжается
сразу после выполнения метода (не ожидая повторения интервала). Его вызов просто откладывает будущее событие.
Пример 1. Сообщение alert выводится через 5 секунд (5,000 миллисекунд) после щелчка пользователя по кнопке. Если пользователь щёлкает вторую кнопку до вывода сообщения, таймаут отменяется и alert не отображается.
<SCRIPT LANGUAGE="JavaScript">
function displayAlert() {
alert("5 seconds have elapsed since the button was clicked.")
}
</SCRIPT>
<BODY>
<FORM>
Click the button on the left for a reminder in 5 seconds;
click the button on the right to cancel the reminder before
it is displayed.
<P>
<INPUT TYPE="button" VALUE="5-second reminder"
NAME="remind_button"
onClick="timerID=setTimeout('displayAlert()',5000)">
<INPUT TYPE="button" VALUE="Clear the 5-second reminder"
NAME="remind_disable_button"
onClick="clearTimeout(timerID)">
</FORM>
</BODY>
Пример 2. Выводится текущее время в объекте Text
. Функция showtime
,
вызываемая рекурсивно, использует метод setTimeout
для обновления значения каждую секунду.
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
var timerID = null
var timerRunning = false
function stopclock(){
if(timerRunning)
clearTimeout(timerID)
timerRunning = false
}
function startclock(){
// Убедиться, что часы остановлены
stopclock()
showtime()
}
function showtime(){
var now = new Date()
var hours = now.getHours()
var minutes = now.getMinutes()
var seconds = now.getSeconds()
var timeValue = "" + ((hours > 12) ? hours - 12 : hours)
timeValue += ((minutes < 10) ? ":0" : ":") + minutes
timeValue += ((seconds < 10) ? ":0" : ":") + seconds
timeValue += (hours >= 12) ? " P.M." : " A.M."
document.clock.face.value = timeValue
timerID = setTimeout("showtime()",1000)
timerRunning = true
}
//-->
</SCRIPT>
</HEAD>
<BODY onLoad="startclock()">
<FORM NAME="clock" onSubmit="0">
<INPUT TYPE="text" NAME="face" SIZE=12 VALUE ="">
</FORM>
</BODY>
window.clearTimeout
, window.setInterval
Специфицирует поведение z-order стэкирования окна.
setZOptions(windowPosition)
Для установки этого свойства необходимо обладать привилегией UniversalBrowserWrite
. О безопасности см. книгу
По умолчанию окно Navigator'а переходит наверх в
порядке z-order при активации и переходит вниз в порядке z-order при активации
других окон. С помощью метода setZOptions
Вы можете явно
специфицировать положение окна в порядке z-order.
Если Вы не специфицируете аргумент для setZOptions
, этот метод
восстанавливает стэкирование z-order по умолчанию окна Navigator'а.
Вы можете также специфицировать поведение порядка стэкирования окна во время его
создания при использовании метода window.open
.
window.open
Специфицирует приоритетное сообщение статусной строки окна, такое как
сообщение появляющееся при возникновении события mouseOver
в якоре.
JavaScript 1.1. Это свойство разрушено/запорчено по умолчанию. О разрушении данных см. книгу
Не путайте свойство status
со свойством defaultStatus
.
Свойство defaultStatus
отражает сообщение по умолчанию, выводимое в статусной строке/status bar.
Вы можете установить свойство status
в любое время. Вы обязаны
возвращать true, если хотите установить свойство status
в
обработчике onMouseOver
.
Предположим, Вы создали функцию JavaScript под названием pickRandomURL
,
которая даёт возможность выбрать произвольный URL.
Вы можете использовать обработчик onClick
в якоре для динамического
специфицирования значения атрибута HREF
этого якоря и обработчик onMouseOver
- для специфицирования специального сообщения для окна - в свойстве status
:
<A HREF=""
onClick="this.href=pickRandomURL()"
onMouseOver="self.status='Pick a random URL'; return true">
Go!</A>
Здесь свойство status
окна присваивается свойству self
окна таким образом: self.status
.
window.defaultStatus
Представляет строку статуса/status bar окна. Это область, содержащая индикатор security, статус браузера и т.п.
Значение свойства statusbar
само имеет свойство visible
.
Если оно true, статусная строка отображается; если false, она скрыта.
Установка значения свойства visible
статусной строки требует
наличия привилегии UniversalBrowserWrite
. О безопасности см. книгу
Следующий пример делает окно, на которое ссылаются, "chromeless" (в chromeless-окнах нет панелей toolbar, полос прокрутки, статусной области и т.д., что делает их похожими на диалоговые окна), пряча большинство из панелей интерфейса пользователя:
self.menubar.visible=false;
self.toolbar.visible=false;
self.locationbar.visible=false;
self.personalbar.visible=false;
self.scrollbars.visible=false;
self.statusbar.visible=false;
stop()
Этот метод выполняет те же действия, что и нажатие на кнопку Stop в браузере.
Представляет панель toolbar окна браузера, содержащую кнопки навигации, такие как Back, Forward, Reload, Home и т.п.
Значение свойства toolbar
само имеет свойство visible
.
Если оно true, toolbar отображается; если false, панель скрыта.
Установка значения свойства visible
панели toolbar требует наличия
привилегии UniversalBrowserWrite
. О безопасности см. книгу
Следующий пример делает окно, на которое ссылаются, "chromeless" (в chromeless-окнах нет панели toolbar, полос прокрутки, статусной области и т.д., что делает их похожими на диалоговые окна), пряча большинство из панелей интерфейса пользователя:
self.menubar.visible=false;
self.toolbar.visible=false;
self.locationbar.visible=false;
self.personalbar.visible=false;
self.scrollbars.visible=false;
self.statusbar.visible=false;
Свойство top
это синоним самого верхнего окна браузера, которое
является окном документа или окном web-браузера.
Свойство top
ссылается на самое верхнее окно, содержащее фрэймы или
вложенные наборы фрэймов/frameset. Используйте свойство top
для обращения к этому окну-предку.
Значением этого свойства является
<object objectReference>
где objectReference
это внутренняя ссылка.
Оператор top.close()
закрывает самое верхнее окно иерархии окон .
Оператор top.length
специфицирует количество фрэймов, содержащихся
внутри самого верхнего окна. Если самый верхний предок определён так, top.length
возвращает 3:
<FRAMESET COLS="30%,40%,30%">
<FRAME SRC=child1.htm NAME="childFrame1">
<FRAME SRC=child2.htm NAME="childFrame2">
<FRAME SRC=child3.htm NAME="childFrame3">
</FRAMESET>
Следующий пример устанавливает цвет фона фрэйма myFrame
в red.
myFrame
это потомок самого верхнего окна-предка.
top.myFrame.document.bgColor="red"
Свойство window
это синоним текущего окна или фрэйма.
Свойство window
ссылается на текущее окно или фрэйм. То есть
значение этого свойства является синонимом самого объекта.
Хотя можно использовать свойство window
как синоним текущего фрэйма,
Ваш код будет лучше читаться, если вы будете использовать свойство self
.
Например, window.name
и self.name
оба специфицируют
имя текущего фрэйма, но self.name
легче понять (поскольку фрэйм не
отображается как отдельное окно).
Используйте свойство window
для устранения неоднозначности свойства
объекта window
при вызове из формы или элемента формы с тем же
именем. Вы можете также использовать свойство window
, чтобы сделать
код более понятным.
Значением свойства window
является
<object nameAttribute>
где nameAttribute
это атрибут NAME
, если window
ссылается на фрэйм, или внутренняя ссылка, если window
ссылается на окно.
Здесь window.status
используется для установки свойства status
текущего окна. Такое использование устраняет неоднозначность свойства status
текущего окна при обращении к текущему окну из формы, которая называется "status", в текущем окне.
<A HREF=""
onClick="this.href=pickRandomURL()"
onMouseOver="window.status='Pick a random URL' ; return true">
Go!</A>
window.self
Дата последнего обновления: 28 мая 1999 года.
Copyright (c) 1999