Window opener javascript function

Window opener Property

Open a window and write some text in the opener window:

const myWindow = window.open(«», «», «width=300,height=300»);
myWindow.opener.document.getElementById(«demo»).innerHTML = «HELLO!»;

Description

The opener property returns a reference to the window that created the window.

If window xxx opens window yyy:

yyy.opener.close() closes xxx.

See Also:

Syntax

Return Value

Browser Support

window.opener is supported in all browsers:

Chrome Edge Firefox Safari Opera IE
Yes Yes Yes Yes Yes Yes

Unlock Full Access 50% off

COLOR PICKER

colorpicker

Join our Bootcamp!

Report Error

If you want to report an error, or if you want to make a suggestion, do not hesitate to send us an e-mail:

Thank You For Helping Us!

Your message has been sent to W3Schools.

Top Tutorials
Top References
Top Examples
Get Certified

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Источник

Window: opener property

The Window interface’s opener property returns a reference to the window that opened the window, either with open() , or by navigating a link with a target attribute.

In other words, if window A opens window B , B.opener returns A .

Value

A Window -like object referring to the window that opened the current window (using window.open() , or by a link with target attribute set). If this window was not opened by being linked to or created by another, returns null .

If the opener is not on the same origin as the current page, functionality of the opener object is limited. For example, variables and functions on the window object are not accessible. However, navigation of the opener window is possible, which means that the opened page can open a URL in the original tab or window. In some cases, this makes phishing attacks possible, where a trusted page that is opened in the original window is replaced by a phishing page by the newly opened page.

Читайте также:  Linking Pages in HTML

In the following cases, the browser does not populate window.opener , but leaves it null :

  • The opener can be omitted by specifying rel=noopener on a link, or passing noopener in the windowFeatures parameter.
  • Windows opened because of links with a target of _blank don’t get an opener , unless explicitly requested with rel=opener .
  • Having a Cross-Origin-Opener-Policy header with a value of same-origin prevents setting opener . Since the new window is loaded in a different browsing context, it won’t have a reference to the opening window.

Specifications

Browser compatibility

BCD tables only load in the browser

Found a content problem with this page?

This page was last modified on Apr 8, 2023 by MDN contributors.

Источник

JavaScript — Объект window: открытие и закрытие окон

Методы объекта window: open(), close(), print(), focus() и blur()

В этом разделе мы рассмотрим следующие методы объекта window :

  • open() — предназначен для открытия окон (вкладок);
  • close() — предназначен для закрытия окон. В основном используется для закрытия окон открытых методом open() ;
  • print() — предназначен для печати содержимого окна;
  • focus() — предназначен для передачи фокусу указанному окну;
  • blur() — предназначен для удаления фокуса с указанного окна.

Открытие нового окна или вкладки

В JavaScript открыть новое окно или вкладку из существующего документа можно с помощью метода « window.open ».

window.open([url] [, windowName] [,windowFeature]);

Синтаксис метода open объекта window

  • url – адрес ресурса, который необходимо загрузить в это окно или вкладку (если в качестве url указать пустую строку, то туда будет загружена пустая страница «about:blank»);
  • windowName – имя окна;
  • windowFeature – необязательный параметр для настройки свойств окна (они указываются в формате «свойство=значение» через запятую и без пробелов).

Настройки окна windowFeature :

  • left и top – положение левого верхнего угла окна относительно экрана (значения этих свойств должны быть больше или равны 0);
  • height и width — размеры окна (его высота и ширина); основная масса браузеров имеет ограничения на минимальные значения этих свойств (в большинстве случаев – это не меньше 100);
  • menubar – во включённом состоянии отображает строку меню;
  • toolbar – включает показ кнопок панели инструментов («Назад», «Вперёд», «Обновить» «Остановить») и панель закладок (если она отображается в родительском окне);
  • location – определяет нужно ли показывать адресную строку;
  • resizable — свойство, которое позволяет включить (yes) или выключить (no) возможность изменения размеров окна;
  • scrollbars – предназначено для включения (yes) или выключения (no) полос прокрутки;
  • status – определяет нужно ли отображать строку состояния или нет.

Настройки menubar , toolbar , location , resizable , scrollbars , status является логическими, если их нужно включить, то устанавливаем значение true , в противном случае – false .

Рассмотрим следующий примеры:

1. Открыть пустую страницу about:blank в новом окне. Данное окно должно иметь ширину и высоту, равную 250рх:

window.open("","","width=250,height=250");

2. Открыть веб-страницу «http://itchief.ru/» в текущем окне:

window.open("http://itchief.ru/", "_self");

3. Открыть новое окно, имеющее определённые свойства (top=100, left=100, width=400, height=500, scrollbars=yes, resizabie=yes):

window.open("http://itchief.ru", "_blank", "top=100, left=100, width=400, height=500, scrollbars=yes, resizable=yes");

Как взаимодействовать с окном после его открытия

Метод open() позволяет не только открыть окно, но и получить ссылку на данное окно. Данная ссылка позволяет взаимодействовать с этим окном посредством вызова определённых свойств и методов. Т.е. мы можем с помощью JavaScript кода, расположенного в одном окне управлять другим окном.

Читайте также:  Создать массив со значениями php

Переменная, содержащая ссылку на окно

Например, для того чтобы обратиться к объекту document открытого окна:

Обращение к объекту document открытого окна

Открыть пустое новое окно и вывести в ней некоторый текст:

var myWindow = window.open("", "", "width=250, height=250"); myWindow.document.write("

Некоторый текст

");

Примечание: Взаимодействовать Вы можете только с теми окнами, которые сами открыли, с другими окнами Вы работать не можете.

Метод close()

Он предназначен для закрытия окна. Данный метод не имеет параметров. Он обычно используется для закрытия окон созданных методом open() . В противном случае, когда Вы попытаетесь закрыть окно (вкладку), открытое самим пользователем (не из JavaScript), то браузер из-за соображений безопасности запросит у пользователя подтверждение на выполнение этого действия.

Например, создадим кнопки для открытия и закрытия окна с именем myWindow :

   

Метод print()

Он предназначен для печати содержимого окна. Данный метод не имеет параметров.

  

Метод focus()

Он предназначен для передачи фокусу указанному окну. Данный метод не имеет параметров.

Метод blur()

Он предназначен, чтобы убрать фокус с указанного окна, т.е. перемещает его на задний план. Данный метод не имеет параметров.

    

Свойства объекта window: name, opener, closed

В этом разделе рассмотрим следующие свойства объекта window :

  • name — предназначено для получения или установления внутреннего имени окна;
  • opener — позволяет получить в текущем окне, ссылку на окно (объект window ), с которого было открыто данное окно;
  • closed — свойство логического типа, которое возвращает: true , если окно закрыто и false , если окно открыто.

Свойство name

Данное свойство очень часто используется для изменения внутреннего имени окна, после того как оно уже открыто. Кроме этого, свойство name может вернуть текущее значение внутреннего имени окна.

Внутреннее имя окна, это не строка, заключённая между открывающим и закрывающим тегом title — это имя окна которое предназначено для разработчика. Т.е. данное имя невидимо для пользователя.

Данное имя в основном используется в гиперссылках и формах для указания окна, в котором необходимо открыть страницу. Например, для указания внутреннего имя окна в гиперссылке используется атрибут target , Если элемент а имеет атрибут target=»searchWindow» , то при нажатии на данную ссылку браузер сначала пытается найти окно с таким внутренним именем ( searchWindow ), если окна с таким внутренним именем не существует, то он открывает новое окно и присваивает ему имя searchWindow . А если окно с таким именем существует, то новое окно не открывается, а перезагружается страница по указанной ссылке а этом окне. По умолчанию окна а браузере не имеют внутреннего имени.

Читайте также:  Name that color css

Например, откроем страницу «http://www.google.com/» в окне, имеющем имя myWindow :

Например, откроем окно с помощью метода open() и выведем в нём его имя:

 var wnd = window.open("","myTest","width=200, height=300"); wnd.document.write("

Это окно имеет имя:" + wnd.name +".");

Свойство opener

Данное свойство позволяет получить в окне, ссылку на исходное окно (объект window ), т.е. на окно из которого было открыто данное окно.

Например, у Вас есть исходное окно (1), в котором Вы с помощью метода ореn() открываете другое окно (2). В этом окне (2) Вы можете с помощью свойства opener получить окно (1).

Свойство opener объекта window

  Открыть окно

Свойство closed

Свойство closed возвращает логическое значение, указывающее закрыто окно или нет.

    

Источник

window.opener

Если окно было открыто из другого окна, то оно сохраняет ссылку на него в свойстве window.opener .

Если такого окна нет, то window.opener = null .

Словил непонятный особенность в FF3.6.
Через window.open открываю новое окно. В нем обращаюсь к opener, а он равен undefined. Методом перебора вариантов определил, что в дочернем окне нужно добавить document.domain=document.domain, хотя на других страницах работает без этого. Обе страници из одного домена. Так и не понял почему так.

Видимо, страницы все же были с разных поддоменов.

спасибо за совет. у меня без этой штуки
document.domain=document.domain
были глюки во всех броузерах (FF, IE, Chrome) когда настраивал обработку логина на сайт через аккаунт myspace. (надо было из дочернее окно, где логин происходил, закрыть, а главное перенаправить на ссылку на профиль пользователя)

добавил эту строчку — все ок стало. без этого во всех броузерах ошибки доступа были.

Промучившись с проблемой, я решил использовать обработку ошибок:

try window.opener.document.location=url;
>
catch (e) alert(e.name + ‘:’ + e.message);
>
в надежде прояснить в чем дело. Сразу же все заработало, и никакой ошибки не появилось. Какой-то это глюк Firefox/

Нужно обратиться к элементу по его ID, причем элемент на самой странице, а скрипт — в iframe. Как это сделать? Я не совсем понял.

Обнаружил, что свойство opener доступно не только при открывании нового окна через window.open, но и при простом открывании его по ссылке типа:

Работает в Фаерфоксе и Хроме, в других не проверял.

Источник

Оцените статью