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>
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()
};
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);
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). /
sur l'événement de clic de la fonction de fermeture de popup Essayez ...
window.opener.location.reload(true);
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.
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);