Wann sollte in JavaScript window.opener
/ window.parent
/ verwendet werden window.top
?
javascript
window
Sriram
quelle
quelle
Antworten:
window.opener
bezieht sich auf das Fenster, das aufgerufen wurdewindow.open( ... )
, um das Fenster zu öffnen, von dem aus es aufgerufen wirdwindow.parent
bezieht sich auf das übergeordnete Element eines Fensters in einem<frame>
oder<iframe>
window.top
bezieht sich auf das oberste Fenster eines Fensters, das in einer oder mehreren Ebenen von<iframe>
Unterfenstern verschachtelt istDiese werden
null
(oder vielleichtundefined
) sein, 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.)quelle
window.open()
beim Senden der Seite geöffnet wird . Jetzt öffnet dieses untergeordnete Fenster ein weiteres untergeordnetes Fenster mit demselbenwindow.open()
schließenden Selbst. Wenn ich jetzt mein zweites Kind einreiche (das erste Kind existiert nicht mehr), möchte ich auf die Seitenelemente meiner Hauptseite zugreifen. Ist dies ab dem zweiten Kind möglich, wenn das erste nicht mehr vorhanden ist?window.opener.opener
bevor die Zwischenseite verschwindet .Ich denke, Sie müssen Ihrer Frage einen Kontext hinzufügen. Grundlegende Informationen zu diesen Dingen finden Sie jedoch hier:
window.opener
https://developer.mozilla.org/en-US/docs/Web/API/Window.openerIch habe window.opener hauptsächlich beim Öffnen eines neuen Fensters verwendet, das als Dialogfeld fungierte und 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 das Öffnungsfenster vom selben Ursprung geladen werden.
window.parent
https://developer.mozilla.org/en-US/docs/Web/API/Window.parentIch habe dies hauptsächlich bei der Arbeit mit IFrames verwendet, die mit dem Fensterobjekt kommunizieren müssen, das sie enthält.
window.top
https://developer.mozilla.org/en-US/docs/Web/API/Window.topDies 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 beschädigt.
Wenn Sie Ihrer Frage etwas mehr Details hinzufügen, kann ich Ihnen weitere relevantere Beispiele liefern.
UPDATE: Es gibt einige Möglichkeiten, wie Sie mit Ihrer Situation umgehen können.
Sie haben folgende Struktur:
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 von Dialog 2 ist und "window" die Variable für das Fensterobjekt von Dialog 1 ist. Nehmen Sie nach dem Öffnen von Dialog 2, aber vor dem Schließen von Dialog 1 eine ähnliche Zuordnung vor:
Nachdem Sie die obige Zuweisung vorgenommen haben, schließen Sie Dialog 1. Anschließend können Sie anhand des in dialog2 ausgeführten Codes
window.appMainWindow
auf das Hauptfenster und das Fensterobjekt verweisen können.Hoffe das hilft.
quelle
window.open()
beim Senden der Seite geöffnet wird . Jetzt öffnet dieses untergeordnete Fenster ein weiteres untergeordnetes Fenster mit demselbenwindow.open()
schließenden Selbst. Wenn ich jetzt mein zweites Kind einreiche (das erste Kind existiert nicht mehr), möchte ich auf die Seitenelemente meiner Hauptseite zugreifen. Ist dies ab dem zweiten Kind möglich, wenn das erste nicht mehr vorhanden ist?top, parent, opener (sowie window, self und iframe) sind alle Fensterobjekte.
window.opener
-> gibt das Fenster zurück, das das aktuelle Popup-Fenster öffnet oder startet.window.top
-> gibt das oberste Fenster zurück. Wenn Sie Frames verwenden, ist dies das Frameset-Fenster. Wenn Sie keine Frames verwenden, entspricht dies dem Fenster oder self.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 Sie keine Frames verwenden, entspricht das übergeordnete Element dem aktuellen Fenster oder dem aktuellen Fensterquelle
Wenn Sie mit Popups arbeiten, spielt window.opener eine wichtige Rolle, da wir uns sowohl mit Feldern der übergeordneten als auch der untergeordneten Seite befassen 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 dann erneut mit window.opener festlegen
quelle