|
|
Книги-onlinewindow Оглавление | Назад | Вперёд | Индекс windowОкно или фрэйм в браузере. Это объект верхнего уровня для каждой группы объектов document, Location и History.
СозданиеМашина выполнения JavaScript создаёт объект window для каждого тэга BODY или FRAMESET. Она также создаёт объект window для представления каждого фрэйма, определённого тэгом FRAME. Кроме того, Вы можете создать другие окна, вызывая метод window.open. Детали определения окна см. в разделе open. Обработчики событийВ JavaScript 1.1, на некоторых платформах, размещение обработчика onBlur или onFocus в тэге FRAMESET не даёт эффекта. ОписаниеОбъект window это объект верхнего уровня в клиентской иерархии JavaScript. Объект window может представлять окно верхнего уровня или фрэйм из набора фрэймов. Для удобства Вы можете представлять объект Frame как объект window, который не является окном верхнего уровня. Однако в действительности не существует отдельный класс Frame; эти объекты в действительности являются объектами window с очень небольшими отличиями:
Для всех окон свойства 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, не будет загружен в него. Свойства. Резюме.
Методы. Резюме.
Кроме того, этот объект наследует методы watch и unwatch из Object. ПримерыПример 1. Окна, открывающие другие окна. Здесь документ верхнего окна открывает второе окно window2 и определяет push-кнопки, которые открывают окно с сообщением, записывает в окно сообщения, закрывает его и закрывает window2. Обработчики onLoad и onUnload документа, загруженного в window2, выводят предупреждающие сообщения при открытии и закрытии окна. win1.html, который определяет фрэймы для первого окна, содержит следующий код: <HTML> win2.html, который определяет содержимое окна window2, содержит следующий код: <HTML> Пример 2. Создание фрэймов. Создаются два окна, каждое из 4 фрэймов. В первом окне первый фрэйм содержит кнопки, которые изменяют цвет фона фрэймов в обоих окнах. framset1.html, где определяются фрэймы первого окна, содержит следующий код: <HTML> framset2.html, где определяются фрэймы второго окна, содержит следующий код: <HTML> framcon1.html, где определяется содержимое первого фрэйма первого окна, содержит следующий код: <HTML> <P><INPUT TYPE="button" VALUE="window2.frame2 to violet" framcon2.html, где определяется содержимое остальных фрэймов, содержит следующий код: <HTML> framcon3.html, на который ссылается объект Link в framcon1.html, содержит следующий код: <HTML> См. такжеdocument, FramealertВыводит диалог Alert с сообщением и кнопкой OK. Синтаксисalert(message) Параметр
ОписаниеИспользуйте метод alert для отображения сообщения, которое не требует принятия пользователем решения. Аргумент message специфицирует текст сообщения. Вы не можете специфицировать заголовок окна alert, но можете использовать метод open для создания Вашего собственного диалога alert. См. open. ПримерФункция testValue проверяет имя введённое пользователем в Text-объект формы, чтобы гарантировать, что оно имеет не более 8 символов. Этот пример использует метод alert для предупреждения пользователя. function testValue(textElement) { Можно вызвать функцию testValue в обработчике onBlur объекта Text, как здесь: Name: <INPUT TYPE="text" NAME="userName" См. такжеwindow.confirm, window.promptatobДекодирует строку данных, которая была кодировано по методу base-64. Синтаксисatob(encodedData) Параметр
ОписаниеЭтот метод декодирует строку данных, которая была кодирована с использованием base-64. Например, метод window.btoa принимает бинарную строку в качестве параметра и возвращает строку, кодированную в base-64. Вы можете использовать метод window.btoa для кодирования и передачи данных, а затем воспользоваться методом window.atob для декодирования. Например, Вы можете закодировать, передать и декодировать символы, такие как ASCII-значения с 0 по 31. ПримерКодируется и декодируется строка "Hello, world". // кодируется строка См. такжеwindow.btoabackОтменяет последний шаг истории в любом фрэйме окна верхнего уровня; эквивалентно нажатию кнопки 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" См. такжеwindow.forward, History.backblurУбирает фокус со специфицированного объекта. Синтаксисblur() ПараметрыОписаниеМетод blur используется для удаления фокуса со специфицированного окна или фрэйма. Удаление фокуса из окна переводит окно на задний план в большинстве оконных операционных систем. См. такжеwindow.focusbtoaСоздаёт ASCII-строку, кодированную по системе base-64, из строковых или двоичных данных. Синтаксисbtoa(stringToEncode) Параметр
ОписаниеЭтот метод принимает двоичную строку ASCII в качестве параметра и возвращает другую ASCII-строку, кодированную с использованием base-64. Вы можете использовать этот метод для кодирования данных, которые могут иначе вызвать коммуникационные проблемы, передать их, а затем использовать метод window.atob для декодирования данных. Например, Вы можете кодировать такие символы, как значения ASCII от 0 до 31. ПримерыСм. window.atob. См. такжеwindow.atobcaptureEventsУстанавливает захват окном всех событий специфицированного типа. СинтаксисcaptureEvents(eventType1 [|eventTypeN...]) Параметр
БезопасностьЕсли окно с фрэймами должно захватывать события на страницах, загружаемых с разных серверов, Вы должны использовать captureEvents в маркированном скрипте и предварительно вызвать enableExternalCapture. Вы обязаны иметь привилегию UniversalBrowserWrite. Дополнительно см. enableExternalCapture. О безопасности см. книгу Клиентский JavaScript. Руководство. См. такжеcaptureEvents работает в паре с releaseEvents, routeEvent и handleEvent. Дополнительно см. Клиентский JavaScript. Руководство. clearIntervalОтменяет таймаут, установленный методом setInterval. СинтаксисclearInterval(intervalID) Параметр
ОписаниеСм. setInterval. ПримерыСм. setInterval. См. такжеwindow.setIntervalclearTimeoutОтменяет таймаут, установленный методом setTimeout. СинтаксисclearTimeout(timeoutID) Параметр
ОписаниеСм. setTimeout. ПримерыСм. setTimeout. См. такжеwindow.clearInterval, window.setTimeoutcloseЗакрывает специфицированное окно.
Синтаксисclose() ПараметрыБезопасностьДля безусловного закрытия окна Вы должны иметь привилегию UniversalBrowserWrite. О безопасности см. книгу Клиентский JavaScript. Руководство. ОписаниеМетод 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() Пример 2: Закрытие главного окна браузера. top.opener.close() Пример 3. Здесь закрывается окно messageWin: messageWin.close() Предполагается, что окно было открыто примерно в такой манере: messageWin=window.open("") См. такжеwindow.closed, window.openclosedСпецифицирует, закрыто ли окно. ОписаниеСвойство closed это Булево значение, которое специфицирует, закрыто ли окно. Когда окно закрывается, объект window, представляющий его, продолжает существовать, и его свойство closed устанавливается в true. Используйте метод closed для определения, открыто ли в данный момент окно, которое Вы ранее открыли и на которое Вы имеете ссылку (из return-значения метода window.open). Если окно закрыто, Вы не должны пытаться манипулировать им. ПримерыПример 1. Следующий код открывает окно win1, затем позже проверяет, было ли оно закрыто. Вызываемая функция зависит от того, закрыто ли окно win1. win1=window.open('opener1.html','window1','width=300,height=300') Пример 2. Определяется, закрыто ли окно, открывшее текущее окно, и вызывается соответствующая функция. if (window.opener.closed) См. такжеwindow.close, window.openconfirmОтображает диалоговое окно Confirm со специфицированным сообщением и кнопками OK и Cancel. Синтаксисconfirm(message) Параметр
ОписаниеИспользуйте confirm для запроса у пользователя решения, которое требует OK/подтверждения или Cancel/отмены. Аргумент message специфицирует текст сообщения. Метод confirm возвращает true, если нажата кнопка OK, и false, если нажата Cancel. Вы не можете специфицировать заголовок окна confirm, но можете использовать метод open для создания Вашего собственного диалога confirm. См. open. ПримерМетод confirm в функции confirmCleanUp используется для подтверждения закрытия приложения. Если пользователь выбрал OK, специальная функция cleanUp закрывает приложение. function confirmCleanUp() { Вы можете вызвать функцию confirmCleanUp в обработчике onClick кнопки, как показано в этом примере: <INPUT TYPE="button" VALUE="Quit" onClick="confirmCleanUp()"> См. такжеwindow.alert, window.promptcryptoОбъект, дающий доступ к возможностям шифрования в Navigator'е. ОписаниеОбъект crypto доступен только как свойство объекта window; он предоставляет доступ к методам, которые поддерживают возможности шифровки в Navigator'е. См. такжеwindow.crypto.random, window.crypto.signTextcrypto.randomВозвращает псевдослучайную строку, размер которой равен специфицированному количеству байтов. Синтаксисcrypto.random(numberOfBytes) Параметр
ОписаниеЭтот метод генерирует произвольную строку данных, размер которой специфицируется параметром numberOfBytes. ПримерФункция возвращает строку длиной 16 байт. function getRandom() { См. такжеMath.randomcrypto.signTextВозвращает строку кодированных данных, которая представляет маркированный объект. Синтаксисcrypto.signText Параметры
ОписаниеМетод signText спрашивает пользователя о проверке строки text путём присоединения к ней цифровой подписи. Если параметр selectionStyle установлен в ask, signText выводит диалог, и пользователь обязан интерактивно выбрать сертификат для проверки текста. Если selectionStyle is установлен в auto, Navigator пытается автоматически выбрать сертификат. Используйте метод signText для отправки кодированной подписи на сервер; сервер декодирует подпись и проверяет её. Если signText терпит неудачу, он возвращает один из следующих error-кодов:
defaultStatusСообщение по умолчанию, выводимое в статусной строке в нижней части окна. БезопасностьJavaScript 1.1. Это свойство разрушено/запорчено по умолчанию. О разрушении данных см. книгу Клиентский JavaScript. Руководство. ОписаниеСообщение defaultStatus появляется, если в статусной строке ничего больше нет. Не путайте свойство defaultStatus со свойством status. Свойство status отражает приоритетное или временной сообщение в статусной строке, такое как при возникновении события mouseOver при проведении указателя мыши над якорем. Вы можете установить свойство defaultStatus в любое время. Вы обязаны возвращать true, если хотите устанавливать свойство defaultStatus в обработчиках onMouseOut или onMouseOver. ПримерФункция statusSetter устанавливает свойства status и defaultStatus в обработчике onMouseOver: function statusSetter() { <A href="index.php?name=go&url=http%3A%2F%2Fhome.netscape.com" Заметьте, что в это примере обработчик onMouseOver возвращает true. Вы обязаны возвращать true, если хотите устанавливать defaultStatus и status в обработчиках событий. См. такжеwindow.statusdisableExternalCaptureОтменяет захват внешних событий, установленный методом enableExternalCapture. СинтаксисdisableExternalCapture() ПараметрыОписаниеdocumentСодержит информацию о текущем документе и предоставляет методы для отображения пользователю HTML-вывода. ОписаниеЗначением этого свойства является ассоциированный объект document окна. enableExternalCaptureПозволяет окну с фрэймами захватывать события на страницах, загружаемых из других location (серверов). СинтаксисenableExternalCapture() ПараметрыОписаниеИспользуйте этот метод в маркированном скрипте, запрашивающем привилегии UniversalBrowserWrite, и перед вызовом метода captureEvents. Если Communicator видит дополнительные скрипты, которые ухудшают работу действующих принципалов контейнера, он отключает захват внешних событий. Дополнительные вызовы enableExternalCapture (после получения привилегии UniversalBrowserWrite при уменьшенном наборе принципалов) могут выполняться для возобновления захвата внешних событий. ПримерОкно может захватывать все события Click, возникающие в его фрэймах. <SCRIPT ARCHIVE="myArchive.jar" ID="2"> См. такжеwindow.disableExternalCapture, window.captureEventsfindНаходит специфицированную текстовую строку в содержимом специфицированного окна. Синтаксисfind([string[, caseSensitive, backward]]) Параметры
Возвращаетtrue, если строка найдена; иначе - false. ОписаниеКогда string специфицирован, браузер выполняет поиск сверху вниз без учёта регистра символов. Если параметр string не специфицирован, метод выводит диалог Find, позволяющий пользователю ввести строку для поиска. focusПередаёт фокус специфицированному объекту. Синтаксисfocus() ПараметрыОписаниеИспользуйте метод focus для перехода к специфицированному окну или фрэйму и передаче ему фокуса. Передача фокуса окну переводит его на передний план в большинстве оконных операционных систем. В JavaScript 1.1, на некоторых платформах, метод focus передаёт фокус фрэйму, но этот фокус визуально не проявляется (например, рамка фрэйма не темнеет). ПримерыФункция checkPassword подтверждает, что пользователь ввёл верный пароль. Если введён неправильный пароль, метод focus возвращает фокус объекту Password, а метод select выделяет его, чтобы пользователь мог повторно ввести пароль. function checkPassword(userPass) { Предполагается, что объект Password определён так: <INPUT TYPE="password" NAME="userPass"> См. такжеwindow.blurforwardПереводит браузер к следующему 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" См. такжеwindow.backframesМассив объектов, соответствующих дочерним фрэймам (созданных тэгами FRAME) в порядке расположения в исходном коде. Вы можете обратиться к дочерним фрэймам окна, используя массив frames. Этот массив содержит вхождения для всех дочерних фрэймов (созданных тэгами FRAME) в окне, содержащем тэг FRAMESET; вхождения расположены в порядке исходного кода. Например, если окно содержит три фрэйма со значениями атрибутов NAME fr1, fr2 и fr3, Вы можете обратиться к этим объектам в массиве images так: parent.frames["fr1"] parent.frames[0] Можно определить общее количество дочерних фрэймов окна через свойство length в самом window или в массиве frames. Значение каждого элемента массива frames равно <object nameAttribute>, где nameAttribute это атрибут NAME данного фрэйма. handleEventВызывает обработчик для специфицированного события. СинтаксисhandleEvent(event) Параметр
ОписаниеhandleEvent работает в паре с captureEvents, releaseEvents и routeEvent. Дополнительно см. Клиентский JavaScript. Руководство. historyСодержит информацию о URL, которые клиент посетил в окне. ОписаниеЗначением этого свойства является ассоциированный объект History окна. homeПереводит браузер на URL, специфицированный в настройках как домашняя страница пользователя; эквивалентно нажатию пользователем кнопки Home браузера. Синтаксисhome() ПараметрыОписаниеЭтот метод выполняет то же действие, что и при нажатии в браузере кнопки Home. innerHeightСпецифицирует вертикальные размеры в пикселах области содержимого окна. ОписаниеДля создания окна размером менее 100 x 100 пикселов установите это свойство в маркированном скрипте. БезопасностьДля установки внутренней высоты окна размером менее 100 x 100 или больше, чем экран может вместить, Вам необходима привилегия UniversalBrowserWrite. О безопасности см. книгу Клиентский JavaScript. Руководство. См. такжеwindow.innerWidth, window.outerHeight, window.outerWidthinnerWidthСпецифицирует горизонтальные размеры в пикселах области содержимого окна. ОписаниеДля создания окна размером менее 100 x 100 пикселов установите это свойство в маркированном скрипте. БезопасностьДля установки внутренней ширины окна размером менее 100 x 100 или больше, чем экран может вместить, Вам необходима привилегия UniversalBrowserWrite. О безопасности см. книгу Клиентский JavaScript. Руководство. См. такжеwindow.innerHeight, window.outerHeight, window.outerWidthlengthКоличество дочерних фрэймов окна. ОписаниеЭто свойство даст тот же результат, что и свойство length массива frames. locationСодержит информацию о текущем URL. ОписаниеЗначением этого свойства является ассоциированный объект Location окна. locationbarПредставляет адресную строку окна браузера (область, содержащую области закладки и URL). ОписаниеСамо значение свойства locationbar имеет свойство visible. Если оно true, адресная строка видна; если false, она скрыта. БезопасностьУстановка значения свойства visible адресной строки требует наличия привилегии UniversalBrowserWrite. О безопасности см. книгу Клиентский JavaScript. Руководство. ПримерСледующий пример создаёт окно "chromeless" (в окне chromeless отсутствуют панель утилит, полосы прокрутки, статусные области и т.д., как в диалоговом окне), пряча большую часть панелей пользовательского интерфейса: self.menubar.visible=false; menubarПредставляет строку меню окна. Эта область содержит ниспадающие меню браузера, такие как File, Edit, View, Go, Communicator и т.д. ОписаниеЗначение свойства menubar само имеет свойство visible. Если оно true, строка меню видна; если false, меню скрыто. БезопасностьУстановка значения свойства visible строки меню требует наличия привилегии UniversalBrowserWrite. О безопасности см. книгу Клиентский JavaScript. Руководство. ПримерыСледующий пример создаёт окно "chromeless" (в окне chromeless отсутствуют панель утилит, полосы прокрутки, статусные области и т.д., как в диалоговом окне), пряча большую часть панелей пользовательского интерфейса: self.menubar.visible=false; moveByПеремещает окно относительно его текущей позиции на специфицированное количество пикселов. СинтаксисmoveBy(horizontal, vertical) Параметры
ОписаниеЭтот метод перемещает окно, прибавляя или вычитая специфицированное количество пикселов к текущему положению. БезопасностьВыход за пределы одной из границ экрана (и скрытие части или всего окна) требует маркированного JavaScript, иначе окно не будет перемещаться за пределы экрана. Для этого необходимо иметь привилегию UniversalBrowserWrite. О безопасности см. книгу Клиентский JavaScript. Руководство. ПримерЧтобы переместить текущее окно на 5 пикселов вверх (ось x) и на 10 пикселов вправо (ось у) от текущей позиции, используйте такой оператор: self.moveBy(-5,10); // относительное позиционирование См. такжеwindow.moveTomoveToПеремещает верхний левый угол окна на специфицированные координаты экрана. СинтаксисmoveTo(x-coordinate, y-coordinate) Параметры
ОписаниеЭтот метод перемещает окно в абсолютное положение, указанное его параметрами (в пикселах). Начало отсчёта по осям ведётся от абсолютной позиции (0,0); это верхний левый угол экрана монитора. БезопасностьВыход за пределы одной из границ экрана (и скрытие части или всего окна) требует маркированного JavaScript, иначе окно не будет перемещаться за пределы экрана. Для этого необходимо иметь привилегию UniversalBrowserWrite. О безопасности см. книгу Клиентский JavaScript. Руководство. ПримерДля перемещения текущего окна на 25 пикселов от верхней границы экрана (ось x) и на 10 пикселов от левого края экрана (ось y) используйте такой оператор: self.moveTo(25,10); // абсолютное позиционирование См. такжеwindow.moveBynameСтрока, специфицирующая имя окна.
БезопасностьJavaScript 1.1. Это свойство разрушено/запорчено по умолчанию. О разрушении данных см. книгу Клиентский JavaScript. Руководство. ОписаниеВ JavaScript 1.0 NAME было свойством только для чтения/read-only. В последующих версиях это свойство может изменяться Вашим кодом. Это даёт возможность присваивать имя окну верхнего уровня. ПримерПервый оператор создаёт окно netscapeWin. Второй оператор выводит значение "netscapeHomePage" в диалоге Alert, поскольку "netscapeHomePage" является значением аргумента windowName окна netscapeWin. netscapeWin=window.open("http://home.netscape.com","netscapeHomePage") offscreenBufferingСпецифицирует, выполняются ли обновления окна в offscreen-буфере. ОписаниеПо умолчанию Navigator автоматически определяет, выполняются ли обновления окна в offscreen-буфере, а затем отображаются в окне. Вы можете либо полностью отключить буферизацию, либо "потребовать" от Navigator'а буферизовать обновления, установив в offscreenBuffering значение false или true, соответственно. Буферизация может уменьшить мигание экрана, которое возникает при обновлении окна, но это требует дополнительных системных ресурсов. openОткрывает новое окно web-браузера. Синтаксисopen(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. Вы можете специфицировать: Таблица 1.4 Опции, специфицируемые для вновь открываемого окна
Многие из этих опций (как указано выше) могут иметь значение yes или no. Для этих опций можно использовать 1 вместо yes и 0 вместо no. Если Вы хотите включить опцию, Вы можете просто указать имя опции в строке windowFeatures. Если windowName не специфицирует существующее окно и Вы не предоставляете параметр windowFeatures, все опции, имеющие выбор yes/no, устанавливаются по умолчанию в yes. Однако, если Вы предоставляете параметр windowFeatures, то опции titlebar и hotkeys останутся yes по умолчанию, но другие опции, имеющие выбор yes/no, будут по умолчанию no. Например, все следующие операторы включают опцию toolbar и отключают все другие Булевы опции: open("", "messageWindow", "toolbar") Следующий оператор включает опции 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:
О безопасности см. книгу Клиентский JavaScript. Руководство. ПримерыПример 1. Функция windowOpener открывает окно и использует методы write для вывода сообщения: function windowOpener() { Пример 2. Это обработчик onClick, который открывает новое клиентское окно, выводя содержимое, специфицированное в файле sesame.html. Окно открывается со специфицированными установками опций; все другие опции будут false, поскольку не специфицированы. <FORM NAME="myform"> См. такжеwindow.closeopenerСпецифицирует окно вызывающего документа, если окно открывается методом 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.openouterHeightСпецифицирует вертикальный размер в пикселах внешней границы окна. ОписаниеВнешняя граница включает полосы прокрутки, статусную строку, панели toolbars и другой "chrome" (элементы пользовательского интерфейса рамки окна). Для создания окна размером менее 100 x 100 пикселов, установите это свойство в маркированном скрипте. См. такжеwindow.innerWidth, window.innerHeight, window.outerWidthouterWidthСпецифицирует горизонтальный размер в пикселах внешней границы окна. ОписаниеВнешняя граница включает полосы прокрутки, статусную строку, панели toolbar и другой "chrome" (элементы пользовательского интерфейса рамки окна). Для создания окна размером менее 100 x 100 пикселов, установите это свойство в маркированном скрипте. См. такжеwindow.innerWidth, window.innerHeight, window.outerHeightpageXOffsetПредоставляет текущую x-позицию в пикселах видимой страницы окна. ОписаниеСвойство pageXOffset предоставляет текущую x-позицию страницы относительно верхнего левого угла области содержимого окна. Это свойство используется, если Вам необходимо найти текущую позицию прокручиваемой страницы перед использованием scrollTo или scrollBy. ПримерЭтот пример возвращает x-позицию видимой страницы. x = myWindow.pageXOffset См. такжеwindow.pageYOffsetpageYOffsetПредоставляет текущую у-позицию в пикселах видимой страницы окна. ОписаниеСвойство pageYOffset предоставляет текущую у-позицию страницы относительно верхнего левого угла области содержимого окна. Это свойство используется, если Вам необходимо найти текущую позицию прокручиваемой страницы перед использованием scrollTo или scrollBy. ПримерЭтот пример возвращает у-позицию видимой страницы. x = myWindow.pageYOffset См. такжеwindow.pageXOffsetparentСвойство parent это окно или фрэйм, чей frameset/набор фрэймов содержит текущий фрэйм. ОписаниеЭто свойство имеет смысл только для фрэймов; то есть для окон, которые не являются окнами верхнего уровня. Свойство parent ссылается на тэг FRAMESET окна фрэйма. Дочерние фрэймы в данном frameset ссылаются на родственные фрэймы через использование parent вместо имени окна одним из следующих способов: parent.frameName Например, если четвёртый фрэйм набора имеет NAME="homeFrame", фрэймы-родственники могут ссылаться на этот фрэйм через использование parent.homeFrame или parent.frames[3]. Вы можете использовать parent.parent для обращения к фрэйму или окну-"дедушке", если тэг FRAMESET вложен в дочерний фрэйм. Значением свойства parent является <object nameAttribute> где nameAttribute это атрибут NAME, если родитель является фрэймом, или внутренняя ссылка, если родителем является окно. ПримерыСм. примеры для Frame. personalbarПредставляет персональную панель окна браузера (называемую также панелью директорий). Эту область пользователь может использовать для быстрого доступа к определённым закладкам. ОписаниеЗначение свойства personalbar само имеет свойство visible. Если оно true, персональная панель отображается; если false, панель скрыта. БезопасностьУстановка значения свойства visible персональной панели требует наличия привилегии UniversalBrowserWrite. О безопасности см. книгу Клиентский JavaScript. Руководство. ПримерСледующий пример делает окно, на которое ссылаются, "chromeless" (в chromeless-окнах нет панелей toolbars, полос прокрутки, статусной области и т.д., что делает их похожими на диалоговые окна), пряча большинство из панелей интерфейса пользователя: self.menubar.visible=false; Синтаксисprint() ПараметрыpromptВыводит диалог Prompt с сообщением и полем для ввода. Синтаксисprompt(message[, inputDefault]) Параметры
Описание
Используйте метод prompt для вывода диалогового окна, принимающего ввод от пользователя. Если Вы не специфицируете начальное значение для inputDefault, диалог показывает <undefined>. Вы не можете специфицировать заголовок диалога prompt, но можете использовать метод open для создания Вашего собственного prompt-диалога. См. open. Примерыprompt("Enter the number of cookies you want to order:", 12) См. такжеwindow.alert, window.confirmreleaseEventsУстанавливает освобождение объектами window или document захваченных событий специфицированного типа, отправляя событие следующим объектам по иерархии событий. ПРИМЕЧАНИЕ: Если первоначальной целью/target события является окно, это окно получает событие, даже если оно имеет установку освобождать события этого типа. СинтаксисreleaseEvents(eventType1 [|eventTypeN...]) Параметр
ОписаниеreleaseEvents работает вместе с captureEvents, routeEvent и handleEvent. Дополнительно см. Клиентский JavaScript. Руководство. resizeByИзменяет размеры всего окна, перемещая нижний правый угол окна на специфицированные величины. СинтаксисresizeBy(horizontal, vertical) Параметры
Описание
Этот метод изменяет размеры окна через установку свойств outerWidth
и outerHeight. Верхний левый угол остаётся
на месте, а нижний правый угол перемещается. БезопасностьВыход за любую границу экрана (для скрытия части или всего окна) требует маркированного JavaScript, иначе окно не будет перемещаться за пределы экрана. Кроме того, окна имеют форсированный минимальный размер 100 x 100 пикселов; изменение размеров окна меньше этого минимума требует маркированного JavaScript. Для этого Вам нужна привилегия UniversalBrowserWrite. О безопасности см. книгу Клиентский JavaScript. Руководство. ПримерЧтобы сделать текущее окно на 5 пикселов уже и на 10 пикселов выше, используйте такой оператор: self.resizeBy(-5,10); // относительное позиционирование См. такжеwindow.resizeToresizeToСинтаксисresizeTo(outerWidth, outerHeight) Параметры
ОписаниеЭтот метод изменяет размеры окна, устанавливая его свойства outerWidth
и outerHeight. Верхний левый угол остаётся на месте, а правый нижний угол перемещается. БезопасностьВыход за любую границу экрана (для скрытия части или всего окна) требует маркированного JavaScript, иначе окно не будет перемещаться за пределы экрана. Кроме того, окна имеют форсированный минимальный размер 100 x 100 пикселов; изменение размеров окна меньше этого минимума требует маркированного JavaScript. Для этого Вам нужна привилегия UniversalBrowserWrite. О безопасности см. книгу Клиентский JavaScript. Руководство. ПримерыЧтобы сделать окно шириной 225 пикселов и высотой 200 пикселов, используйте этот оператор: self.resizeTo(225,200); // абсолютное позиционирование См. такжеwindow.resizeByrouteEventПередаёт захваченное событие по нормальной цепи иерархии. СинтаксисrouteEvent(event) Параметр
ОписаниеЕсли субобъект (document или layer) также захватывает событие, событие посылается этому объекту. Иначе оно посылается своей изначальной цели. routeEvent работает вместе с captureEvents, releaseEvents и handleEvent. Дополнительно см. Клиентский JavaScript. Руководство. screenXСпецифицирует x-координату левого угла окна. БезопасностьУстановка значения свойства screenX требует наличия привилегии UniversalBrowserWrite. О безопасности см. книгу Клиентский JavaScript. Руководство. См. такжеwindow.screenYscreenYСпецифицирует y-координату верхнего угла окна. БезопасностьУстановка значения свойства screenY требует наличия привилегии UniversalBrowserWrite. О безопасности см. книгу Клиентский JavaScript. Руководство. См. такжеwindow.screenXscrollПрокручивает окно до специфицированных координат. Описание
В JavaScript 1.2, scroll больше не используется и заменён на scrollTo. scrollbarsПредставляет вертикальную и горизонтальную полосы прокрутки окна браузера для области документа. ОписаниеЗначение свойства scrollbars само имеет свойство visible. Если оно true, видны обе полосы прокрутки; если false, они скрыты. БезопасностьУстановка значения свойства visible полос прокрутки требует наличия привилегии UniversalBrowserWrite. О безопасности см. книгу Клиентский JavaScript. Руководство. ПримерыСледующий пример делает окно, на которое ссылаются, "chromeless" (в chromeless-окнах нет панелей toolbar, полос прокрутки, статусной области и т.д., что делает их похожими на диалоговые окна), пряча большинство из панелей интерфейса пользователя: self.menubar.visible=false; scrollByПрокручивает область просмотра окна на специфицированную величину. СинтаксисscrollBy(horizontal, vertical) Параметры
Описание
Этот метод прокручивает содержимое окна, если часть содержимого находится за пределами окна. Чтобы этот метод работал, свойство visible для опции window.scrollbars обязано быть true. ПримерДля прокрутки текущего окна на 5 пикселов влево и на 30 пикселов вниз от текущей позиции, используйте: self.scrollBy(-5,30); // относительное позиционирование См. такжеwindow.scrollToscrollToПрокручивает область просмотра окна таким образом, что специфицированная точка становится левым верхним углом. СинтаксисscrollTo(x-coordinate, y-coordinate) Параметры
ОписаниеscrollTo заменил scroll. scroll оставлен для обеспечения обратной совместимости. Метод scrollTo прокручивает содержимое окна, если имеются невидимые части за пределами окна. Чтобы этот метод работал, свойство visible для опции window.scrollbars обязано быть true. ПримерыПример 1: Прокрутка текущей области просмотра. Для прокрутки окна к левой границе и на 20 пикселов вниз от верха окна, используйте этот оператор: self.scrollTo(0,20); // абсолютное позиционирование Пример 2: Прокрутка другой области просмотра. Это код, расположенный в одном фрэйме, прокручивает область просмотра другого фрэйма. Два объекта Text дают пользователю возможность специфицировать координаты x и y. если пользователь щёлкает по кнопке Go, документ в frame2 прокручивается на специфицированные координаты. <SCRIPT> <FORM NAME="myForm"> См. такжеwindow.scrollByselfСвойство self это синоним текущего окна. ОписаниеСвойство self ссылается на текущее окно. То есть значение этого свойства является синонимом самого объекта. Используйте свойство self для устранения неоднозначности свойства window при вызове из формы или элемента формы с тем же именем. Вы можете также использовать свойство self, для того чтобы сделать Ваш код более читабельным. Значением свойства self является <object nameAttribute> где nameAttribute это атрибут NAME, если self ссылается на фрэйм, или внутренняя ссылка, если self ссылается на окно. ПримерВ этом примере self.status используется для установки свойства status текущего окна. Такое использование устраняет неоднозначность свойства status текущего окна при вызове из формы или элемента формы с названием status внутри текущего окна. <A href="books-page-javascript-javascript_13-" setHotKeysВключает или отключает "горячие клавиши" в данном окне, которое не имеет меню. СинтаксисsetHotKeys(trueOrFalse) Параметр
БезопасностьДля включения/отключения горячих клавиш Вам нужно иметь привилегию UniversalBrowserWrite. О безопасности см. книгу Клиентский JavaScript. Руководство. ОписаниеПо умолчанию горячие клавиши отключены в окне, в котором отсутствует меню. С помощью метода setHotKeys вы можете явным образом включать/отключать все горячие клавиши, за исключением security и quit, которые всегда включены. Можно также специфицировать включение горячих клавиш во время создания окна, если используется метод window.open. См. такжеwindow.opensetIntervalВычисляет выражение или вызывает функцию каждый раз при истечении специфицированного количества миллисекунд, пока не будет отменён вызовом метода clearInterval. СинтаксисsetInterval(expression, msec) Параметры
ОписаниеТаймаут работает до момента уничтожения ассоциированного окна или фрэйма или до отмены интервала методом clearInterval. setInterval не нарушает выполнение скрипта. Скрипт продолжается сразу после выполнения метода (не ожидая повторения интервала). Его вызов просто откладывает будущее событие. ПримерЭтот код отображает текущее время в объекте Text. В функции startclock вызов метода setInterval заставляет вызывать функцию showtime каждую секунду для обновления показаний часов. Заметьте, что функция startclock и метод setInterval вызываются только один раз каждый. <SCRIPT LANGUAGE="JavaScript"> function startclock(){ См. такжеwindow.clearInterval, window.setTimeoutsetResizableСпецифицирует, может ли пользователь изменять размеры окна. СинтаксисsetResizable(trueOrFalse) Параметр
ОписаниеПо умолчанию новое окно Navigator'а может менять размеры. Методом setResizable Вы можете явно разрешить или запретить пользователю изменять размеры окна. Не все операционные системы поддерживают этот метод. Вы можете также специфицировать, может ли окно изменять размеры во время создания, если используется метод window.open. См. такжеwindow.opensetTimeoutВычисляет выражение или вызывает функцию по истечении специфицированного количества миллисекунд. СинтаксисsetTimeout(expression, msec) Параметры
ОписаниеМетод setTimeout вычисляет выражение или вызывает функцию по истечении специфицированного количества времени. Он не выполняется повторно. Например, если метод setTimeout специфицирует 5 секунд, через пять секунд вычисляется выражение или вызывается функция, но не каждые пять секунд. Для выполнения повторяющихся таймаутов используйте метод setInterval. setTimeout не нарушает выполнение скрипта. Скрипт продолжается сразу после выполнения метода (не ожидая повторения интервала). Его вызов просто откладывает будущее событие. ПримерыПример 1. Сообщение alert выводится через 5 секунд (5,000 миллисекунд) после щелчка пользователя по кнопке. Если пользователь щёлкает вторую кнопку до вывода сообщения, таймаут отменяется и alert не отображается. <SCRIPT LANGUAGE="JavaScript"> Пример 2. Выводится текущее время в объекте Text. Функция showtime, вызываемая рекурсивно, использует метод setTimeout для обновления значения каждую секунду. <HEAD> function showtime(){ <BODY onLoad="startclock()"> См. такжеwindow.clearTimeout, window.setIntervalsetZOptionsСпецифицирует поведение z-order стэкирования окна. СинтаксисsetZOptions(windowPosition) Параметр
БезопасностьДля установки этого свойства необходимо обладать привилегией UniversalBrowserWrite. О безопасности см. книгу Клиентский JavaScript. Руководство. ОписаниеПо умолчанию окно Navigator'а переходит наверх в порядке z-order при активации и переходит вниз в порядке z-order при активации других окон. С помощью метода setZOptions Вы можете явно специфицировать положение окна в порядке z-order. Если Вы не специфицируете аргумент для setZOptions, этот метод восстанавливает стэкирование z-order по умолчанию окна Navigator'а. Вы можете также специфицировать поведение порядка стэкирования окна во время его создания при использовании метода window.open. См. такжеwindow.openstatusСпецифицирует приоритетное сообщение статусной строки окна, такое как сообщение появляющееся при возникновении события mouseOver в якоре. БезопасностьJavaScript 1.1. Это свойство разрушено/запорчено по умолчанию. О разрушении данных см. книгу Клиентский JavaScript. Руководство. ОписаниеНе путайте свойство status со свойством defaultStatus. Свойство defaultStatus отражает сообщение по умолчанию, выводимое в статусной строке/status bar. Вы можете установить свойство status в любое время. Вы обязаны возвращать true, если хотите установить свойство status в обработчике onMouseOver. ПримерыПредположим, Вы создали функцию JavaScript под названием pickRandomURL, которая даёт возможность выбрать произвольный URL. Вы можете использовать обработчик onClick в якоре для динамического специфицирования значения атрибута HREF этого якоря и обработчик onMouseOver - для специфицирования специального сообщения для окна - в свойстве status: <A href="books-page-javascript-javascript_13-" Здесь свойство status окна присваивается свойству self окна таким образом: self.status. См. такжеwindow.defaultStatusstatusbarПредставляет строку статуса/status bar окна. Это область, содержащая индикатор security, статус браузера и т.п. ОписаниеЗначение свойства statusbar само имеет свойство visible. Если оно true, статусная строка отображается; если false, она скрыта. БезопасностьУстановка значения свойства visible статусной строки требует наличия привилегии UniversalBrowserWrite. О безопасности см. книгу Клиентский JavaScript. Руководство. ПримерыСледующий пример делает окно, на которое ссылаются, "chromeless" (в chromeless-окнах нет панелей toolbar, полос прокрутки, статусной области и т.д., что делает их похожими на диалоговые окна), пряча большинство из панелей интерфейса пользователя: self.menubar.visible=false; stopСинтаксисstop() ПараметрыОпределениеЭтот метод выполняет те же действия, что и нажатие на кнопку Stop в браузере. toolbarПредставляет панель toolbar окна браузера, содержащую кнопки навигации, такие как Back, Forward, Reload, Home и т.п. ОписаниеЗначение свойства toolbar само имеет свойство visible. Если оно true, toolbar отображается; если false, панель скрыта. БезопасностьУстановка значения свойства visible панели toolbar требует наличия привилегии UniversalBrowserWrite. О безопасности см. книгу Клиентский JavaScript. Руководство. ПримерСледующий пример делает окно, на которое ссылаются, "chromeless" (в chromeless-окнах нет панели toolbar, полос прокрутки, статусной области и т.д., что делает их похожими на диалоговые окна), пряча большинство из панелей интерфейса пользователя: self.menubar.visible=false; topСвойство top это синоним самого верхнего окна браузера, которое является окном документа или окном web-браузера. ОписаниеСвойство top ссылается на самое верхнее окно, содержащее фрэймы или вложенные наборы фрэймов/frameset. Используйте свойство top для обращения к этому окну-предку. Значением этого свойства является <object objectReference> где objectReference это внутренняя ссылка. ПримерыОператор top.close() закрывает самое верхнее окно иерархии окон . Оператор top.length специфицирует количество фрэймов, содержащихся внутри самого верхнего окна. Если самый верхний предок определён так, top.length возвращает 3: <FRAMESET COLS="30%,40%,30%"> Следующий пример устанавливает цвет фона фрэйма myFrame в red. myFrame это потомок самого верхнего окна-предка. top.myFrame.document.bgColor="red" windowСвойство 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="books-page-javascript-javascript_13-" См. такжеwindow.self Оглавление | Назад | Вперёд | ИндексДата последнего обновления: 28 мая 1999 года. Внимание! Если у вас не получилось найти нужную информацию, используйте рубрикатор или воспользуйтесь поиском . книги по программированию исходники компоненты шаблоны сайтов C++ PHP Delphi скачать |
|