Conserver le dialogue mère-fille

Contenu du snippet

Bonjour, ce code permet de conserver le dialogue entre la fenetre mère et la fenetre fille meme si la fenetre mère change de page...

L'utilité pour moi était de faire une interface de debuggage pour le php pour tout mon site sans avoir a ouvrir une popup par page débugger ou que la popup se rafraichisse a toute les fois (lorsqu'on ouvre 2 popup avec le meme nom, elle reprend sa forme originelle, vive sakura ;) )

Le timeout a une milliseconde est la seulement pour permettre a la page mere de changer de page avant d'executer la fonction...

Source / Exemple :


<!-- mere.html -->
<html>
<head>
</head>
<script>
var w;
function ecrire()
{
w.document.getElementById("allo").innerHTML = "ecrit par mere1";
}
</script>
<body onUnload="w.changelocation();">
<a href="#" onClick='w=window.open("popup.html","pop1","width=200,height=200,status=1, resizable=1");'>ouvrir fene</a>
<a href="mere2.html">mere2</a>
</body>
</html>

<!-- mere2.html -->
<html>
<head>
<script>
var w;
function ecrire()
{
w.document.getElementById("allo").innerHTML = "ecrit par mere2";
}
</script>
</head>

<body onUnload="w.changelocation();">
<a href="mere.html">dsds</a>
</body>
</html>

<!-- popup.html -->
<html>
<head>
</head>
<script>

function changelocation()
{
setTimeout("opener.w = window.self;opener.ecrire();",1)
}
</script>
<body>
YEEEEEEEEEEEEEEEEEEEHAAAAAAAAWWWWWWWWWWWWWWw
<div id="allo"></div>
</body>
</html>

Conclusion :


En résumé il se sert de unload pour savoir si l'utilisateur change de page ... malheureusement si il ferme le navigateur ou si il change de page avec l'url il va avoir une petite erreur

la solution pour l'éviter serai de mettre un event sur chaque lien mais bon, ca devient lourd...

Si vous avez une autre solution pour faire environ la même chose merci de me le dire ..

J'espere que ca peut vous etre utile.

@+ Arkko

A voir également