Окно: свойство opener
Базовая линия Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Свойство opener интерфейса Window возвращает ссылку на окно, которое открыло текущее окно, либо с помощью open(), либо при навигации по ссылке с атрибутом target.
Другими словами, если окно A открывает окно B, то B.opener возвращает A.
Значение
Объект, похожий на Window, который ссылается на окно, открывшее текущее окно (используя window.open() или ссылку с атрибутом target). Если текущее окно не было открыто ссылкой или другим окном, возвращается null.
Если окно-открыватель находится на другом домене, функциональность объекта opener ограничена. Например, переменные и функции объекта window недоступны. Однако навигация по окну opener возможна, что означает, что открытая страница может открыть URL в исходной вкладке или окне. В некоторых случаях это позволяет проводить фишинговые атаки, где надёжная страница, открытая в исходном окне, заменяется фишинговой страницей открытой страницей.
Точнее, для объектов opener из другого домена доступны следующие свойства:
windowself-
location: доступны только свойстваLocation.replaceиLocation.href closeclosedfocusblurframeslengthtopopenerparentpostMessage-
window[0],window[1], и т.д.
Кроме того, есть несколько свойств: then, [Symbol.toStringTag], [Symbol.hasInstance], [Symbol.isConcatSpreadable], которые используются различными операциями JavaScript. Эти свойства имеют значения undefined. Все остальные свойства генерируют SecurityError DOMException при обращении.
В следующих случаях браузер не заполняет window.opener, а оставляет его null:
- Окно-открыватель может быть пропущен, если задать
rel=noopenerдля ссылки или передатьnoopenerв параметрwindowFeatures. - Окна, открытые ссылками с
targetзначения_blank, не получаютopener, если не запрошены явно с помощьюrel=opener. - Заголовок
Cross-Origin-Opener-Policyсо значениемsame-originпредотвращает установкуopener. Поскольку новое окно загружается в другом контексте просмотра, у него не будет ссылки на открывающее окно.
Спецификации
| Спецификация |
|---|
| HTML # dom-opener-dev |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
opener |
1 | 12 | 1 | 3 | 1 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Window/opener