Was sind window.opener / window.parent / window.top?

Lesezeit: 4 Minuten

Srirams Benutzeravatar
Sriram

Was sind in JavaScript? window.opener, window.parentUnd window.topund wann kann ich sie verwenden?

  • Es gibt auch eine window.self, die auf dasselbe Fenster verweist 🙂

    – abhimanyuaryan

    18. April 2015 um 5:22

  • window.opener bezieht sich auf das aufgerufene Fenster window.open( ... ) um das Fenster zu öffnen, von dem aus es aufgerufen wird
  • window.parent bezieht sich auf das übergeordnete Element eines Fensters in a <frame> oder <iframe>
  • window.top bezieht sich auf das oberste Fenster eines Fensters, das in einer oder mehreren Ebenen verschachtelt ist <iframe> Unterfenster

Das wird sein null (oder vielleicht undefined), wenn sie für die Situation des verweisenden Fensters nicht relevant sind. („Verweisendes Fenster“ bezeichnet das Fenster, in dessen Kontext der JavaScript-Code ausgeführt wird.)

  • Danke @pointy für die Antwort. Ich habe eine Hauptseite, die ein Kind mit öffnet window.open() beim Absenden der Seite. Nun öffnet dieses untergeordnete Fenster ein weiteres untergeordnetes Fenster mit demselben window.open() sich selbst schließen. Wenn ich jetzt mein zweites Kind einreiche (das erste Kind existiert nicht mehr), möchte ich auf die Seitenelemente meiner Hauptseite zugreifen. Ist das ab dem zweiten Kind möglich, wenn das erste nicht mehr da ist?

    – Sriram

    3. Juli 2012 um 14:40 Uhr

  • @Sriram: Das ist die Art von Informationen, die Sie in Ihre Frage einfügen müssen, damit die Leute wissen, welches Problem Sie haben Wirklich versuche zu lösen.

    – josh3736

    3. Juli 2012 um 14:42

  • @Sriram, du musst greifen window.opener.opener bevor die Zwischenseite verschwindet.

    – Spitze

    3. Juli 2012 um 15:00 Uhr

Markieren Sie den Benutzeravatar von At Ramp51
Markieren Sie an Ramp51

Grundlegende Informationen zu diesen Dingen finden Sie auf MDN:

window.opener

Ich habe verwendet window.opener Meistens beim Öffnen eines neuen Fensters, das als Dialog fungierte, der Benutzereingaben erforderte und Informationen an das Hauptfenster zurückgeben musste. Dies ist jedoch durch die Ursprungsrichtlinie eingeschränkt. Sie müssen daher sicherstellen, dass sowohl der Inhalt des Dialogfelds als auch des Öffnungsfensters vom selben Ursprung geladen werden.

window.parent

Ich habe dies hauptsächlich bei der Arbeit mit verwendet <iframe>S die mit dem Fensterobjekt kommunizieren müssen, das sie enthält.

window.top

Dies ist nützlich, um sicherzustellen, dass Sie mit dem Browserfenster der obersten Ebene interagieren. Sie können es unter anderem verwenden, um zu verhindern, dass eine andere Website Ihre Website in ein Iframe umwandelt.


Es gibt verschiedene Möglichkeiten, wie Sie mit Ihrer Situation umgehen können.
Sie haben folgende Struktur:

  • Hauptfenster
  • Dialog 1
    • Dialog 2 wird von Dialog 1 geöffnet

Wenn Dialog 1 den Code zum Öffnen von Dialog 2 ausführt, muss Dialog 1 nach dem Erstellen von Dialog 2 eine Eigenschaft für Dialog 2 festlegen, die auf den Dialog1-Öffner verweist.

Wenn also „childwindow“ Ihre Variable für das Fensterobjekt „Dialog 2“ ist und „window“ die Variable für das Fensterobjekt „Dialog 1“ ist. Nehmen Sie nach dem Öffnen von Dialog 2, aber vor dem Schließen von Dialog 1 eine Zuweisung ähnlich dieser vor:

childwindow.appMainWindow = window.opener

Nachdem Sie die obige Zuweisung vorgenommen haben, schließen Sie Dialog 1. Anschließend sollten Sie den in Dialog2 ausgeführten Code verwenden können
window.appMainWindow um auf das Hauptfenster zu verweisen window Objekt.

  • Danke @Mark für die Antwort. Ich habe eine Hauptseite, die ein Kind mit öffnet window.open() beim Absenden der Seite. Nun öffnet dieses untergeordnete Fenster ein weiteres untergeordnetes Fenster mit demselben window.open() sich selbst schließen. Wenn ich jetzt mein zweites Kind einreiche (das erste Kind existiert nicht mehr), möchte ich auf die Seitenelemente meiner Hauptseite zugreifen. Ist das ab dem zweiten Kind möglich, wenn das erste nicht mehr da ist?

    – Sriram

    3. Juli 2012 um 14:41

top, parent, opener (sowie window, self und iframe) sind alles Fensterobjekte.

  1. window.opener -> gibt das Fenster zurück, das das aktuelle Popup-Fenster öffnet oder startet.
  2. window.top -> gibt das oberste Fenster zurück. Wenn Sie Frames verwenden, ist dies das Frameset-Fenster. Wenn Sie keine Frames verwenden, ist dies dasselbe wie „Fenster“ oder „Selbst“.
  3. window.parent -> gibt den übergeordneten Frame des aktuellen Frames oder Iframes zurück. Der übergeordnete Frame kann das Frameset-Fenster oder ein anderer Frame sein, wenn Sie verschachtelte Frames haben. Wenn keine Frames verwendet werden, ist das übergeordnete Element dasselbe wie das aktuelle Fenster oder das aktuelle Selbst

Wenn Sie mit Popups arbeiten, spielt window.opener eine wichtige Rolle, da wir sowohl mit Feldern der übergeordneten als auch der untergeordneten Seite umgehen müssen. Wenn wir Werte auf der übergeordneten Seite verwenden müssen, können wir window.opener verwenden oder wir möchten einige Daten Im untergeordneten Fenster oder Popup-Fenster zum Zeitpunkt des Ladens können wir die Werte wiederum mit window.opener festlegen

1454200cookie-checkWas sind window.opener / window.parent / window.top?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy