Frage Popup öffnen und Elternseite beim Schließen Popup aktualisieren


Ich habe ein Popup-Fenster nach window.open in JavaScript geöffnet, ich möchte die Elternseite aktualisieren, wenn ich dieses Popup-Fenster schließe. (Onclose event?) Wie kann ich das tun?

window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");

75
2018-05-29 02:23


Ursprung


Antworten:


Sie können auf das Elternfenster mit 'Fensteröffner', also schreibe im Unterfenster so etwas wie das Folgende:

<script>
    window.onunload = refreshParent;
    function refreshParent() {
        window.opener.location.reload();
    }
</script>

193
2018-05-29 02:35



Das Popup-Fenster hat kein nahes Ereignis, das Sie hören können.

Auf der anderen Seite gibt es eine geschlossene Eigenschaft, die auf True gesetzt wird, wenn das Fenster geschlossen wird.

Sie können einen Timer einstellen, um diese geschlossene Eigenschaft zu überprüfen und es so zu machen:

var win = window.open('foo.html', 'windowName',"width=200,height=200,scrollbars=no");   
var timer = setInterval(function() {   
    if(win.closed) {  
        clearInterval(timer);  
        alert('closed');  
    }  
}, 1000); 

Sieh dir das an arbeitendes Geigenbeispiel!


29
2018-05-29 02:31



Setzen Sie diese auf Ihrer Kindseite:

<script type="text/javascript">
    function refreshAndClose() {
        window.opener.location.reload(true);
        window.close();
    }
</script>

und

<body onbeforeunload="refreshAndClose();">

aber als gutes UI-Design sollten Sie einen Schließen verwenden button weil es benutzerfreundlicher ist. Siehe Code unten.

<script type="text/javascript">
    $(document).ready(function () {
        $('#btn').click(function () {
            window.opener.location.reload(true);
            window.close();
        });
    });
</script>

<input type='button' id='btn' value='Close' />

11
2018-05-29 02:38



window.open gibt einen Verweis auf das neu erstellte Fenster zurück, sofern die URL geöffnet ist Gleiche Ursprungsrichtlinie.

Das sollte funktionieren:

function windowClose() {
    window.location.reload();
}

var foo = window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");
foo.onbeforeunload= windowClose;​

3
2018-05-29 02:42



Ich benutze das:

<script language='javascript'>
var t;
function doLoad() {
t = setTimeout("window.close()",1000);
}

</script>
<script type="text/javascript">
function refreshAndClose() {
    window.opener.location.reload(true);
    window.close();
}
</script>
<body onbeforeunload="refreshAndClose();" onLoad='doLoad()''>

Wenn das Fenster geschlossen wird, wird das übergeordnete Fenster aktualisiert.


3
2017-10-02 03:26



Wenn Ihre App in einem HTML5-fähigen Browser ausgeführt wird Sie können verwenden POST-Meldung. Das dort gegebene Beispiel ist deinem sehr ähnlich.


1
2018-05-29 02:39



In meinem Fall habe ich ein Pop-up-Fenster geöffnet, wenn ich auf Linkbutton in der Elternseite klicke. Eltern beim Schließen des untergeordneten Elements mit aktualisieren

window.opener.location.reload();

im unterfenster verursacht re wieder öffnen das untergeordnete fenster (Könnte wegen View State Ich denke. Korrigieren Sie mich Wenn ich falsch liege). Also habe ich mich entschieden, die Seite nicht im Elternteil neu zu laden und die Seite erneut zu laden, indem ich dieselbe URL zuweise.

Um zu vermeiden, dass sich Popups nach dem Schließen des Popup-Fensters wieder öffnen, könnte dies hilfreich sein.

window.onunload = function(){
    window.opener.location = window.opener.location;};

1
2018-06-27 13:02



Versuche dies

        self.opener.location.reload(); 

Öffnen Sie das übergeordnete Element eines aktuellen Fensters, und laden Sie den Speicherort neu.


1
2017-09-16 10:41



Sie können die Hauptseite mit dem Eltern-Befehl erreichen (Eltern ist das Fenster), nach dem Schritt können Sie alles machen ...

    function funcx() {
        var result = confirm('bla bla bla.!');
        if(result)
            //parent.location.assign("http://localhost:58250/Ekocc/" + document.getElementById('hdnLink').value + "");
            parent.location.assign("http://blabla.com/" + document.getElementById('hdnLink').value + "");
    } 

0
2017-10-15 09:51