Je peux penser à deux voies possibles qui pourraient être la peine d'essayer ...
Tout d'abord, vous pouvez aborder ce en laissant parler la fenêtre enfant à la fenêtre parent plutôt que le parent à l'enfant. Alors que la fenêtre parente perdra la référence à l'enfant lors de la transition de la page, l'enfant devrait être capable de revenir à la nouvelle page (tant qu'il est toujours sur le même domaine) via window.opener. L'enfant peut utiliser l'intervalle défini pour accéder à la fenêtre d'ouverture et définir un statut «toujours ouvert». Il faudrait le coder de façon à pouvoir ne pas avoir de document pendant la transition, mais cela fonctionnerait. Le code serait à peu près le même que ci-dessous, mais vous pourriez l'affiner en gérant le chargement et le déchargement des événements du parent par l'enfant et en n'exécutant que le minuteur entre les transitions.
fenêtre parent (toutes pages)
var childStatus = "unknown";
fenêtre enfant
var timerHandler;
funciton ChildCallBack()
{
try
{
window.opener.childStatus = "open";
}
catch(e)
{
}
}
timerHandler = window.setInterval(ChildCallBack, 100);
function window_onclose()
{
try
{
window.clearInterval(timerHandler);
window.opener.childStatus = "closed";
}
catch(e)
{
}
}
window.onclose = window_onclose;
En second lieu, et idéalement en dernier recours, l'autre, tout à fait horrible, alternative est d'utiliser un iframe. Placez votre page de transition dans un iframe afin que la page principale réelle ne change pas et puisse ainsi maintenir une référence à l'enfant. L'iframe peut être suffisamment grand pour apparaître comme une page entière. C'est une solution comme un hack méchant mais devrait aussi fonctionner.
« Après que je passe à une autre page de la fenêtre parent, "- Actualisez-vous la page du serveur ou ouvrez-vous une nouvelle fenêtre? –
@NM Je n'ouvre pas une nouvelle fenêtre. Je change l'emplacement de la page que j'ai ouvert la fenêtre enfant. – Feyyaz