2012-07-09 11 views
9

Sto creando una finestra popup che va a hello.html. Voglio che il mio originale (pagina padre) si ricarichi quando chiudo la finestra popup (ciao.html). Non riesco a farlo funzionare, ma sono vicino. Ecco il codice che ho finora per la pagina principale e la pagina hello.html ....Aggiornamento finestra padre dopo la chiusura del popup

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript"> 
function open_win() 
{ 
window.open("hello.html","_blank","toolbar=yes, location=yes, directories=no, status=no, menubar=yes, scrollbars=yes, resizable=no, copyhistory=yes, width=400, height=400"); 
} 
</script> 


<script language="JavaScript"> 

function refreshParent() { 
    window.opener.location.href = window.opener.location.href; 

    if (window.opener.hello.html) 

{ 
    window.opener.hello.html.close() 
    } 
    window.close(); 
} 
</script> 


</head> 

<body> 

<script type="text/javascript"> 

var d=new Date(); 
document.write(d); 

</script> 

<form> 
<input type="button" value="Open Window" onclick="open_win()"> 
</form> 
</body> 
</html> 

Ecco la hello.html ...

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript"> 
</script> 
</head> 
<body> 

Hello 

</body> 
</html> 
+0

Verificare: http://stackoverflow.com/questions/18321323/submit-form-reload-parent-and-close-child/36855748#36855748 potrebbe aiutare qualcuno – NoNaMe

risposta

11

Iscriviti alla unload event in la finestra figlio e chiama la finestra genitore dalla finestra secondaria per avvisare che si sta chiudendo!

Modifica Aggiunto un esempio di codice ...

function popupClosing() { 
    alert('About to refresh'); 
    window.location.href = window.location.href; 
} 

var w = window.open("hello.html","_blank","toolbar=yes, location=yes, directories=no, status=no, menubar=yes, scrollbars=yes, resizable=no, copyhistory=yes, width=400, height=400"); 
w.onunload = function() { 
    window.parent.popupClosing() 
}; 
+0

Non so cosa significhi ... –

+0

grazie .. molto meglio :) –

3

fare in questo modo, dopo aver creato il popup monitorare la sua proprietà "chiuso" stato in un intervallo. Ma questo si aggiunge nel documento principale:

var pop = window.open("page.html", "popup", 
      "width=800,height=500,scrollbars=0,title='popup'"); 
    pop.focus(); 

    var monitor = setInterval(function() { 

     if (pop.closed) { 
      document.location.reaload() 
     } 

    }, 1000); 
+0

Questa è una soluzione abbastanza brutta, ma è l'unica che ha funzionato per me in Chrome 55.0.2883.87. Tutti gli altri metodi funzionerebbero bene in un evento onclick che mi porta a credere che sia Chrome a limitarlo solo a azioni avviate dall'utente simili al ridimensionamento e allo spostamento della finestra. – Shaun

2

provare a mettere questo codice javascript nella finestra pop-up:

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

/evento onunload attiverà quando si chiude la finestra pop-up, e window.opener .location.reload() ricaricherà la finestra sorgente (genitore)./

1

al clic caso di comparsa vicino funzione Try ...

window.opener.location.reload(true); 
0

Questo pezzo di codice funziona così se una nuova finestra è spuntato con la funzione window.open.

setTimeout(function() { window.opener.location.reload(true); window.close();}, 3000); 
0

mettere questo script nell'intestazione della finestra pop-up:

<script type='text/javascript'> 
window.onunload = function(){ 
window.opener.location.reload();} 
</script> 

Questo ricaricherà la finestra padre quando si chiude il popup.