Ich habe ein Popup-Fenster für Fenster geöffnet. Öffnen Sie in JavaScript. Ich möchte die übergeordnete Seite aktualisieren, wenn ich dieses Popup-Fenster schließe. (Ereignis schließen?) Wie kann ich das tun?
window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");
Antworten:
Sie können mit ' window.opener ' auf das übergeordnete Fenster zugreifen . Schreiben Sie also Folgendes in das untergeordnete Fenster:
quelle
popupWindow.closed
Verwendung vonsetInterval
like in @ Zuuls Lösung überprüfen .Das Popup-Fenster enthält kein Abschlussereignis, das Sie anhören können.
Andererseits gibt es eine geschlossene Eigenschaft, die beim Schließen des Fensters auf true gesetzt wird.
Sie können einen Timer einstellen, um diese geschlossene Eigenschaft zu überprüfen und folgendermaßen vorzugehen:
Sehen Sie sich dieses funktionierende Geigenbeispiel an !
quelle
Fügen Sie auf Ihrer Kinderseite Folgendes ein:
und
Als gutes UI-Design sollten Sie jedoch Close verwenden,
button
da es benutzerfreundlicher ist. siehe Code unten.quelle
Ich benutze das:
Wenn das Fenster geschlossen wird, wird das übergeordnete Fenster aktualisiert.
quelle
window.open gibt einen Verweis auf das neu erstellte Fenster zurück, sofern die geöffnete URL der Richtlinie für denselben Ursprung entspricht .
Das sollte funktionieren:
quelle
In meinem Fall habe ich ein Popup-Fenster geöffnet, indem ich auf der übergeordneten Seite auf den Linkbutton geklickt habe. Zum Aktualisieren des übergeordneten Elements beim Schließen des untergeordneten Elements mit
im untergeordneten Fenster verursacht erneutes Öffnen des untergeordneten Fensters (Möglicherweise aufgrund des Ansichtsstatus, denke ich. Korrigieren Sie mich, wenn ich falsch liege). Daher habe ich beschlossen, die Seite nicht übergeordnet zu laden und die Seite erneut zu laden und ihr dieselbe URL zuzuweisen.
Um zu verhindern, dass das Popup nach dem Schließen des Popup-Fensters erneut geöffnet wird, kann dies hilfreich sein:
quelle
Wenn Ihre App in einem HTML5-fähigen Browser ausgeführt wird. Sie können postMessage verwenden . Das dort angegebene Beispiel ist Ihrem sehr ähnlich.
quelle
Versuche dies
quelle
Sie können die Hauptseite mit dem übergeordneten Befehl erreichen (übergeordnet ist das Fenster), nachdem Sie alles gemacht haben ...
quelle
Sie können den folgenden Code auf der übergeordneten Seite verwenden.
quelle
Der folgende Code kann das Schließen des übergeordneten Fensters aktualisieren:
quelle