web-dev-qa-db-fra.com

Rafraîchir la fenêtre Parent après la fermeture du popup

Je crée une fenêtre popup qui va à hello.html. Je veux que mon original (page parent) soit rechargé lorsque je ferme la fenêtre contextuelle (hello.html). Je n'arrive pas à le faire fonctionner, mais je suis proche. Voici le code que j'ai jusqu'à présent pour la page principale et la page hello.html ....

<!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>

Voici le hello.html ...

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

Hello

</body>
</html>
9
John Doe

Abonnez-vous à unload event dans la fenêtre enfant et appelez la fenêtre parent à partir de la fenêtre enfant pour l'informer de sa fermeture!

Edit Ajout d'un exemple de code ...

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()
};
11

Faites-le comme ceci, après avoir créé le moniteur popup sa propriété d'état "fermé" dans un intervalle. Mais ceci est ajouté dans le document parent:

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);
3
Stoia Alex

Essayez de mettre ce code javascript dans votre fenêtre popup:

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

/ L'événement onunload se déclenche lorsque vous fermez la fenêtre contextuelle et window.opener.location.reload () recharge la fenêtre source (parent). /

2
Vineesh Kalarickal

sur l'événement de clic de la fonction de fermeture de popup Essayez ...

window.opener.location.reload(true);
1
saun4frsh

Mettez ce script dans l'en-tête de votre fenêtre popup:

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

Cela rechargera la fenêtre parente lorsque vous fermerez la fenêtre contextuelle.

0
Zeke

Ce morceau de code fonctionne également si une nouvelle fenêtre est ouverte avec la fonctionnalité window.open.

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