Window: opener-Eigenschaft
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Die opener
-Eigenschaft des Window
-Interfaces gibt eine Referenz auf das Fenster zurück, das das aktuelle Fenster geöffnet hat, entweder mit open()
, oder durch das Navigieren eines Links mit einem target
-Attribut.
Mit anderen Worten, wenn Fenster A
Fenster B
öffnet, gibt B.opener
A
zurück.
Wert
Ein Window
-ähnliches Objekt, das auf das Fenster verweist, das das aktuelle Fenster geöffnet hat (unter Verwendung von window.open()
oder durch einen Link mit gesetztem target
-Attribut). Falls dieses Fenster nicht durch Verlinkung oder von einem anderen Fenster erstellt wurde, wird null
zurückgegeben.
Wenn der Opener nicht auf demselben Ursprung wie die aktuelle Seite ist, ist die Funktionalität des Opener-Objekts eingeschränkt. Beispielsweise sind Variablen und Funktionen auf dem Fensterobjekt nicht zugänglich. Allerdings ist die Navigation des Opener-Fensters möglich, was bedeutet, dass die geöffnete Seite eine URL im ursprünglichen Tab oder Fenster öffnen kann. Dies kann in einigen Fällen Phishing-Angriffe ermöglichen, bei denen eine vertrauenswürdige Seite im ursprünglichen Fenster durch eine Phishing-Seite ersetzt wird, die von der neu geöffneten Seite stammt.
Genauer gesagt, für Cross-Origin-Opener-Objekte sind die folgenden Eigenschaften verfügbar:
window
self
location
: nur mit den EigenschaftenLocation.replace
undLocation.href
close
closed
focus
blur
frames
length
top
opener
parent
postMessage
window[0]
,window[1]
, etc.
Zusätzlich gibt es einige Eigenschaften: then
, [Symbol.toStringTag]
, [Symbol.hasInstance]
, [Symbol.isConcatSpreadable]
, die von verschiedenen JavaScript-Operationen verwendet werden. Diese Eigenschaften haben den Wert undefined
. Alle anderen Eigenschaften führen zu einem SecurityError
-DOMException
, wenn darauf zugegriffen wird.
In den folgenden Fällen füllt der Browser window.opener
nicht aus, sondern belässt es bei null
:
- Der Opener kann weggelassen werden, indem
rel=noopener
in einem Link spezifiziert wird oder durch Übergabe vonnoopener
imwindowFeatures
-Parameter. - Fenster, die aufgrund von Links mit einem
target
von_blank
geöffnet wurden, erhalten keinenopener
, es sei denn, es wird explizit mitrel=opener
angefordert. - Ein
Cross-Origin-Opener-Policy
-Header mit dem Wertsame-origin
verhindert das Setzen desopener
. Da das neue Fenster in einem anderen Browsing-Kontext geladen wird, hat es keine Referenz zum öffnenden Fenster.
Spezifikationen
Specification |
---|
HTML Standard # dom-opener-dev |
Browser-Kompatibilität
BCD tables only load in the browser