Клиентский JavaScript. Справочник

         

Описание


В обработчиках событий Вы обязаны специфицировать 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 Опции, специфицируемые для вновь открываемого окна
windowFeatures Описание
alwaysLowered (JavaScript 1.2) Если yes, создаётся новое окно, которое всплывает ниже других окон, независимо от того, активно оно или нет. Это секретная опция и она обязана устанавливаться в маркированных скриптах.

alwaysRaised (JavaScript 1.2) Если yes, создаётся новое окно, которое всплывает выше других окон, независимо от того, активно оно или нет. Это секретная опция и она обязана устанавливаться в маркированных скриптах.

dependent (JavaScript 1.2) Если yes, создаётся новое окно - потомок текущего окна. Зависимое окно закрывается, если закрывается его окно-родитель. На платформе Windows зависимое окно не появляется на панели задач.

directories Если yes, создаются стандартные кнопки директорий браузера, такие как What's New и What's Cool.



height (JavaScript 1.0 и 1.1) Специфицирует высоту окна в пикселах.

hotkeys (JavaScript 1.2) Если no (или 0), отключает большинство горячих клавиш в новом окне, которое не имеет строки меню. Комбинации security и quit продолжают функционировать.

innerHeight (JavaScript 1.2) Специфицирует высоту области содержимого окна в пикселах. Для создания окна размером менее 100 x 100 пикселов установите это свойство в маркированном скрипте. Это свойство заменило height, которое оставлено для обеспечения обратной совместимости.

innerWidth (JavaScript 1.2) Специфицирует ширину области содержимого окна в пикселах. Для создания окна размером менее 100 x 100 пикселов установите это свойство в маркированном скрипте. Это свойство заменило width, которое оставлено для обеспечения обратной совместимости.

location Если yes, создаёт поле ввода Location.
menubar Если yes, создаёт строку меню в верхней части окна.
outerHeight (JavaScript 1.2) Специфицирует размер по вертикали в пикселах внешней границы окна. Для создания окна размером менее 100 x 100 пикселов установите это свойство в маркированном скрипте.

personalbar (JavaScript 1.2) Если yes, создаёт панель Personal Toolbar, которая отображает кнопки из пользовательской папки закладок Personal Toolbar.

resizable Если yes, даёт пользователю возможность изменять размеры окна.

screenX (JavaScript 1.2) Специфицирует расстояние, на котором новое окно помещается от левого края экрана. Для помещения окна за пределы экрана/offscreen установите эту опцию в помеченном скрипте.

screenY (JavaScript 1.2) Специфицирует расстояние, на котором новое окно помещается от верха экрана. Для помещения окна за пределы экрана/offscreen установите эту опцию в помеченном скрипте.

scrollbars Если yes, создаются вертикальная и горизонтальная полосы прокрутки, если Документ становится больше размеров окна.

status Если yes, создаётся статусная строка внизу окна.

titlebar (JavaScript 1.2) Если yes, создаётся окно со строкой заголовка. Для установки titlebar в no, установите эту опцию в маркированном скрипте.

toolbar Если yes, создаётся стандартная панель браузера с кнопками, такими как Back и Forward.

width (JavaScript 1.0 и 1.1) Специфицирует ширину окна в пикселах.

z-lock (JavaScript 1.2) Если yes, создаётся новое окно, которое не перекрывает другие окна при его активации. Это секретная опция и она обязана устанавливаться в маркированных скриптах.

Многие из этих опций (как указано выше) могут иметь значение 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 останется, даже если он реально уже не нужен.



Содержание раздела