Справочник по JavaScript : Объект window : Работа с окнами
смотрим также
Материал из Справочник Web-языков
Давайте поподробнее остановимся на некоторых моментах использования свойств и методов окон.
Прежде всего, требуется дополнительное рассмотрение метода open. Он позволяет Web-дизайнеру открыть на экране дополнительное окно Web-обозревателя и поместить в него какую-либо страницу - очень полезное средство для разработки сложных многостраничных сайтов.
var contentsWindow; contentsWindow = window.open("https://www.spravkaweb.ru/contents.htm","contents");
В этом примере мы создали новое окно, загрузили в него некую Web-страницу и присвоили ей имя contents. Метод open вернул ссылку на объект вновь созданного окна, которую мы можем впоследствии использовать для работы с этим окном:
contentsWindow.Left = 300;
Имя окна можно использовать в атрибуте TARGET тега <A>:
<A href="https://www.spravkaweb.ru/contents2.htm" target="contents">Содержание</A>
Можно использовать дополнительные свойства окна, чтобы тонко управлять его характеристиками. Например, мы очень легко можем убрать у вновь создаваемого окна полосу инструментов и строку состояния:
contentsWindow = window.open("https://www.spravkaweb.ru/contents.htm", "contents", "toolbar=no", "status=no");
Мы можем задать начальные координаты и размеры создаваемого окна:
contentsWindow = window.open("https://www.spravkaweb.ru/contents.htm", "contents", "top=100", "left=200", "width=400", height="200");
А эта строка будет работать только в NN версии 4.06 или более поздней:
contentsWindow = window.open("https://www.spravkaweb.ru/contents.htm", "contents", "screenY=100", "screenX=200", "outerWidth=400", outerHeight="200");
Когда создание окна перестанет быть нужным, его можно закрыть при помощи метода close. Свойство closed позволит в дальнейшем проверить, закрыто ли это окно (например, если его закроет пользователь):
contentsWindow.close; if(contentsWindow.closed) . . .
Свойство status позволяет поместить в строку состояния какой-либо текст, отличный от текста по умолчанию:
window.status = "Справочник WEB - языков";
А свойство defaultStatus позволит также просто вернуть туда текст по умолчанию:
window.status = window.defaultStatus;
Вы также можете вести примитивный диалог с пользователем, используя три специально предусмотренных метода. Метод alert выводит на экран окно предупреждения с заданным текстом и кнопкой Ок:
window.alert("Привет!!!");
Метод confirm отображает окно сообщения с текстом и кнопками Ок и Отмена. Если пользователь нажал Ок, возвращается true, иначе - false.
if(window.confirm("Выберите что-нибудь.")) alert("Вы нажали Ок"); else alert("Вы нажали Отмена");
Метод prompt позволяет запросить у пользователя какие-либо данные. Он выводит диалоговое окно с полем ввода и кнопками Ок и Отмена. В качестве параметров принимается текст приглашения и необязательный текст по умолчанию, отображаемый в поле ввода:
string=window.prompt("Пример использования метода prompt:", "Введите что-нибудь"); alert(string);
Проблема передачи данных между окнами, если url этих окон относятся к разным доменам
Довольно распространенной является организация передачи данных между отдельными окнами браузера или между фреймами внутри одного окна. В стандартной ситуации это нетрудно сделать через объектную модель. Но если страницы двух этих окон относятся к разным доменам - скорее всего вы не сможете получить доступ к объектам (и также переменным, функциям и т.д) другого окна. То же относится и к фреймам. Универсального удобного способа решить эту проблему нет. Следует подумать о возможности передавать данные средствами ajax, cookie, через дополнительные специально организованные страницы, буфер обмена и т.д.