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