J'ai cherché pendant un certain temps et je ne trouve pas de réponse à mes besoins. J'ai une page qui ouvre une fenêtre (window.open), connecte l'utilisateur (crée un cookie, définit une session) puis redirige vers une autre page. Pendant que le modal redirige, je voudrais rafraîchir la page parente, ainsi toutes les bonnes choses que je viens de faire seront reconnues par le parent. J'ai essayé window.opener et des trucs comme ça. Quelqu'un peut-il m'aider un peu? MerciActualiser la fenêtre parent de la fenêtre enfant en javascript
Répondre
window.opener
dans le popup fera référence à l'objet window
de la fenêtre d'ouverture, alors bien sûr, vous devriez être en mesure d'appeler window.opener.location.reload();
. Pourvu que vous ne soyez pas en conflit avec le Same Origin Policy, la fenêtre contextuelle peut appeler des scripts et manipuler des propriétés sur l'objet fenêtre parent, tout comme le code du parent.
Voici un live example qui montre l'appel de l'enfant à une fonction sur le parent et qui manipule directement le parent. Le code complet pour cela est cité ci-dessous.
Mais cet exemple n'a pas fait exactement ce que vous avez dit, donc j'ai done this one as well, qui a l'enfant rafraîchir la page parent via window.opener.location.reload()
.
code parent du premier exemple en direct:
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Parent Window</title>
<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<style>
article, aside, figure, footer, header, hgroup,
menu, nav, section { display: block; }
</style>
</head>
<body>
<input type='button' id='btnOpen' value='Open Window'>
<div id='display'></div>
</body>
<script type='text/javascript'>
(function() {
var btnOpen = document.getElementById('btnOpen');
btnOpen.onclick = btnOpenClick;
function btnOpenClick() {
window.open('http://jsbin.com/ehupo4/2');
}
// Make the callback function available on our
// `window` object. I'm doing this explicitly
// here because I prefer to export any globals
// I'm going to create explicitly, but if you
// just declare a function in a script block
// and *not* inside another function, that will
// automatically become a property of `window`
window.callback = childCallback;
function childCallback() {
document.getElementById('display').innerHTML =
'Got callback from child window at ' + new Date();
}
})();
</script>
</html>
(Vous n'avez pas ont d'utiliser une fonction de cadrage comme je l'ai fait ci-dessus, mais il est utile de garder vos globals contenues.)
code de l'enfant de premier exemple en direct:
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Child Window</title>
<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<style>
article, aside, figure, footer, header, hgroup,
menu, nav, section { display: block; }
</style>
</head>
<body>
<p>I'm the child window</p>
</body>
<script type='text/javascript'>
if (window.opener) {
// Call the provided callback
window.opener.callback();
// Do something directly
var p = window.opener.document.createElement('p');
p.innerHTML = "I was added by the child directly.";
window.opener.document.body.appendChild(p);
}
</script>
</html>
window.parent.top.location = window.parent.top.location; (ou quelque chose de similaire à cela le fera)
window.opener est peut-être mieux – automagic
Si aucune des autres suggestions ne fonctionne (N'oubliez pas de tester dans tous les principaux navigateurs), vous pouvez également essayer de transmettre explicitement une référence de la fenêtre parent à la fenêtre enfant. Parce que window.open()
doit renvoyer une référence à la fenêtre enfant .. afin que vous puissiez faire child = window.open()
et vous pouvez faire quelque chose comme child.myParent = window
Très vrai. 'window.opener' est fiable sauf la SOP, et cela ira à l'encontre de la SOP, mais il est bon d'avoir des options. Vous devez faire un peu attention à la synchronisation, ce qui explique pourquoi je préfère que l'enfant appelle le parent. –
J'ai eu le même problème avec la présentation d'un formulaire dans un modal via ajax et besoin la page ci-dessous (parent page) pour recharger. window.location.reload();
a travaillé pour moi.
- 1. Actualiser la fenêtre parent de la fenêtre enfant dans IE8
- 2. Actualiser la fenêtre parent lors de la fermeture de la fenêtre enfant
- 3. Actualiser la fenêtre parent lorsque la fenêtre contextuelle est fermée
- 4. silverlight 4 et Actualiser la fenêtre parent lorsque la fenêtre enfant est fermée
- 5. Recharger la fenêtre parent à partir de la fenêtre enfant
- 6. fenêtre enfant rafraîchissement de fenêtre parent
- 7. Comment déplacer la fenêtre parent dans la fenêtre enfant?
- 8. Actualiser la fenêtre parent après la fermeture de la fenêtre thickbox
- 9. Actualiser la grille de données de fenêtre parent MDI après la fermeture de la fenêtre enfant dans l'application Windows C#?
- 10. Comment fermer la fenêtre parent de la fenêtre enfant en utilisant window.open()
- 11. L'enregistrement d'une fenêtre enfant enregistre la fenêtre parent à la place (Javascript)
- 12. en évidence du texte de la fenêtre parent lors de la vérification orthographique de fenêtre enfant
- 13. Comment exécuter la fonction de la fenêtre parent lorsque la fenêtre enfant se ferme?
- 14. Comment exécuter la fonction de la fenêtre parent lorsque la fenêtre enfant se ferme?
- 15. Fenêtre du propriétaire WPF en haut de la fenêtre enfant
- 16. fermeture de la fenêtre enfant javascript
- 17. Passer une valeur de la fenêtre enfant au parent
- 18. Envoyer la valeur de la fenêtre contextuelle (enfant) au parent
- 19. fermer la fenêtre de javascript
- 20. De la fenêtre pop active la fenêtre parent
- 21. accéder au contrôle dans la fenêtre parent de la fenêtre enfant dans C#
- 22. À propos de la fenêtre Fenêtre contextuelle vers la fenêtre parent
- 23. Comment puis-je accéder à une fenêtre parent à partir d'une fenêtre enfant après l'ouverture d'une fenêtre enfant dans javascript?
- 24. comment invalider la fenêtre parent sans envoyer wm_paint à la fenêtre enfant?
- 25. Comment fermer la fenêtre enfant si la fenêtre parent est fermée?
- 26. fermer la fenêtre enfant automatiquement lorsque la fenêtre parent est fermée
- 27. Comment soumettre un formulaire sur une fenêtre enfant HTML, puis appeler une fonction Javascript dans la fenêtre parent, puis fermez la fenêtre enfant
- 28. Evénement côté client lorsque la fenêtre enfant change d'emplacement parent?
- 29. Définition de l'URL de la fenêtre parent à partir d'une fenêtre enfant
- 30. Comment accéder et de la valeur de changement de contrôle de la fenêtre parent de fenêtre enfant en C#
Vouliez-vous dire "Rafraîchir le parent du CHILD javascript"? J'aime le piment vert, étant du Nouveau-Mexique, mais je ne sais pas ce qu'est un piment dans ce contexte. –
window.parent n'est-ce pas? 'window.parent.frames [0]' ou similaire https://developer.mozilla.org/en/DOM –
window.opener est généralement ce que vous appellerez dans la fenêtre enfant. Pouvez-vous montrer votre script que vous utilisez pour ouvrir cette nouvelle fenêtre? –