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:

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 von noopener im windowFeatures-Parameter weggelassen werden.
  • Fenster, die aufgrund von Links mit einem target von _blank geöffnet werden, erhalten keinen opener, außer es wird explizit mit rel=opener angefordert.
  • Ein Cross-Origin-Opener-Policy-Header mit einem Wert von same-origin verhindert das Einstellen des opener. Da das neue Fenster in einem anderen Browsing-Kontext geladen wird, hat es keine Referenz zum öffnenden Fenster.

Spezifikationen

Specification
HTML
# dom-opener-dev

Browser-Kompatibilität