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:

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 von noopener im windowFeatures-Parameter.
  • Fenster, die aufgrund von Links mit einem target von _blank geöffnet wurden, erhalten keinen opener, es sei denn, es wird explizit mit rel=opener angefordert.
  • Ein Cross-Origin-Opener-Policy-Header mit dem Wert same-origin verhindert das Setzen des opener. 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