Appel JavaScript de la fenêtre parent de l'enfant de la fenêtre
J'ai un calendrier et lorsque je clique sur un <td>
, une fenêtre pop-up s'affiche pour vous permettre de créer votre evenement pour la date sélectionnée. Je veux ajouter une fonctionnalité.
Lorsque l'utilisateur termine la création de l'événement, je veux envoyer un JavaScript demande au parent de la page afin que je puisse actualiser le calendrier à l'aide d'AJAX. Fondamentalement, je veux appeler une fonction de l'enfant, mais la fonction est sur la page parent.
Sur Google, j'ai trouvé un script que vous pouvez actualiser la fenêtre parent – rien à propos d'un “parent de rappel”. ☹ Est-il même possible?
P. S. La réponse peut être pur JS ou jQuery, il n'a pas d'importance. Je vais continuer à chercher dans l'intervalle.
C'est une très bonne question qui a été jeté autour d'un lot, je ne sais pas pourquoi il a été downvoted. Je peux imaginer que dans les prochaines versions de navigateurs, nous allons voir le javascript étant capables d'interagir avec le fenêtrage plate-forme sur une plus niveau de profondeur.
Merci à vous deux pour la défense de cette question. Je suis juste de demander à un "comment faire", mais pas besoin de code ... Et oui, j'ai fait quelques recherches et tout ce que je trouve est la façon dont ti refrech la fenêtre parent. Je n'ai rien trouvé. Maintenant, j'espère que dans l'avenir, cette question peut être supérieur recherche dans Google et aider plus de gens dans le besoins.
OriginalL'auteur David Bélanger | 2013-06-13
Vous devez vous connecter pour publier un commentaire.
Ce que vous cherchez est une référence à la
window
qui a ouvert la fenêtre pop-up. Une fois que vous avez cela, vous pouvez appeler des fonctions dans cette fenêtre, lire et écrire des variables dans la fenêtre, ou même de les manipuler à son DOM.Que la référence est appelé
opener
. Il vous donne lawindow
objet de la fenêtre qui a ouvert la fenêtre en cours. Par exemple, si vous avez une fonction dans la fenêtre d'origine comme ceci:puis dans la fenêtre qui apparaît, vous pouvez l'appeler comme ceci:
Naturellement, vous devez vous assurer que
updateMe()
est une fonction globale dans la page d'origine. Ou si vous avez un objet dans la page d'origine etupdateMe()
est une méthode de cet objet, vous pouvez encore le faire, tant que l'objet est mondiale. par exemple, dans la page d'hôte:puis dans le menu contextuel que vous pouvez faire:
Fondamentalement, aussi longtemps que vous pourriez obtenir à l'objet ou la fonction dans la page d'origine avec
window.whatever
, puis dans le menu contextuel, vous pouvez simplement changer l'état deopener.whatever
.window.opener
Merci à vous. De ce que je vois, c'est ce que je cherchais. Je vais essayer demain au travail!
Il fonctionne comme un charme ! Merci beaucoup, j'ai appris quelque chose aujourd'hui !
OriginalL'auteur Michael Geary