Spec-Zone.ru › Web APIs

Окно: свойство opener

Базовая линия Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Свойство opener интерфейса Window возвращает ссылку на окно, которое открыло текущее окно, либо с помощью open(), либо при навигации по ссылке с атрибутом target.

Другими словами, если окно A открывает окно B, то B.opener возвращает A.

Значение

Объект, похожий на Window, который ссылается на окно, открывшее текущее окно (используя window.open() или ссылку с атрибутом target). Если текущее окно не было открыто ссылкой или другим окном, возвращается null.

Если окно-открыватель находится на другом домене, функциональность объекта opener ограничена. Например, переменные и функции объекта window недоступны. Однако навигация по окну opener возможна, что означает, что открытая страница может открыть URL в исходной вкладке или окне. В некоторых случаях это позволяет проводить фишинговые атаки, где надёжная страница, открытая в исходном окне, заменяется фишинговой страницей открытой страницей.

Точнее, для объектов opener из другого домена доступны следующие свойства:

  • window
  • self
  • location: доступны только свойства Location.replace и Location.href
  • close
  • closed
  • focus
  • blur
  • frames
  • length
  • top
  • opener
  • parent
  • postMessage
  • 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API