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 mit einem target
-Attribut in einem Link.
Mit anderen Worten: Wenn Fenster A
Fenster B
öffnet, gibt B.opener
A
zurück.
Wert
Ein Window
-ähnliches Objekt, das sich auf das Fenster bezieht, das das aktuelle Fenster geöffnet hat (mit window.open()
oder durch einen Link mit einem target
-Attribut). Wenn dieses Fenster nicht durch Verlinken oder Erstellen durch ein anderes geöffnet 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. Zum Beispiel sind Variablen und Funktionen auf dem Fensterobjekt nicht zugänglich. Navigation des Opener-Fensters ist jedoch möglich, was bedeutet, dass die geöffnete Seite eine URL im ursprünglichen Tab oder Fenster öffnen kann. In einigen Fällen macht dies Phishing-Angriffe möglich, bei denen eine vertrauenswürdige Seite im ursprünglichen Fenster durch eine Phishing-Seite durch die neu geöffnete Seite ersetzt wird.
Genauer gesagt, für cross-origin Opener-Objekte sind die folgenden Eigenschaften verfügbar:
window
self
location
: mit nur den EigenschaftenLocation.replace
undLocation.href
close
closed
focus
blur
frames
length
top
opener
parent
postMessage
window[0]
,window[1]
, usw.
Zusätzlich gibt es einige Eigenschaften: then
, [Symbol.toStringTag]
, [Symbol.hasInstance]
, [Symbol.isConcatSpreadable]
, die von verschiedenen JavaScript-Operationen genutzt werden. Diese Eigenschaften haben den Wert undefined
. Alle anderen Eigenschaften erzeugen einen SecurityError
DOMException
bei Zugriff.
In folgenden Fällen befüllt der Browser nicht window.opener
, sondern lässt es null
:
- Der Opener kann durch Angabe von
rel=noopener
in einem Link oder durch das Übergeben vonnoopener
imwindowFeatures
-Parameter weggelassen werden. - Fenster, die aufgrund von Links mit einem
target
von_blank
geöffnet werden, erhalten keinenopener
, außer es wird explizit mitrel=opener
angefordert. - Ein
Cross-Origin-Opener-Policy
-Header mit einem Wert vonsame-origin
verhindert das Einstellen desopener
. Da das neue Fenster in einem anderen Browsing-Kontext geladen wird, hat es keine Referenz zum öffnenden Fenster.
Spezifikationen
Specification |
---|
HTML # dom-opener-dev |