Dialogue Mère/Fille: Variable d'ouverture perdue en cas de refresh du parent [Résolu]

Signaler
Messages postés
8
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
19 avril 2009
-
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
-
J'ai un problème que je n'arrive pas à régler:

Dans un CMS (xoops) j'ouvre une popup avec "x = window.open(...)".

Ensuite je souhaite accéder à certains éléments présents dans la popup, donc en faisant référence  à la variable "x" d'ouverture.

Le problème:

Quand on navigue dans un site créé avec xoops, chaque clic sur un lien recharge l'ensemble de la page, donc recharge la fenêtre parente.
Cela a pour conséquence de faire perdre la variable d'ouverture de popup "x" et le dialogue devient impossible !

La question:

Comment conserver le dialogue avec la popup ouverte par "x = window.open(...)" lorsque la fenetre parente est rafraichie ?

Merci !

18 réponses

Messages postés
8
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
19 avril 2009

Houlala ! Tu veux dire insérer xoops dans un jeu de frames ? Rogntudjuuu ! (Comme dirait Prunelle le copain de Gaston Lagaffe ...)

Je ne sais pas si tu connais xoops, c'est une vraie usine à gaz ! C'est ptêt possible, mais là, je ne vois pas comment.

Lionel
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
Bonjour,
faut réfléchir là...
à priori, je dirais pas possible ce qu tu voudrais... mais loin d'être certain !

on peut voir les choses autrement ?
window.open avec le même target ==> ouverture de la même pop-up !

Cordialement
Messages postés
8
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
19 avril 2009

Est-ce qu'en ouvrant à nouveau la même fenêtre les variables sont conservées ou est-ce que tout est réinitialisé ?

Je pense qu'il y a une autre solution, mais qui sort peut-etre de javascript, vbscript ou php .... il faudrait récupérer le handle de la fenetre ?

Autre piste, quand on clique sur un lien <a href=... on peut définir target, ensuite on peut toujours appeler la fenetre par son nom de target .... il doit bien y avoir un équivalent en javascript !?
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
>>Est-ce qu'en ouvrant à nouveau la même fenêtre les variables sont conservées
>> ou est-ce que tout est réinitialisé ?
c'est réinitialisé bien sur,
mais rien n'empêche d'utiliser un cookie, par exemple.

>>Je
pense qu'il y a une autre solution, mais qui sort peut-etre de
javascript, vbscript ou php ....
>>il faudrait récupérer le handle de la
fenetre ?
javascript/vbscript ou php : oublie
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
>>>nom de target .... il doit bien y avoir un
équivalent en javascript !?
c'est window.open("page","target"..... )
Messages postés
8
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
19 avril 2009

C'est hélas ce que je craignais ... pourquoi alors ne peut-on appeler la fenêtre "target" quand le parent s'est rafraichi !?
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
>>pourquoi alors ne peut-on appeler la fenêtre "target" quand le parent s'est rafraichi
parce que les variables sont réinitialisées tiens
la même chose que si tu relances n'importe quel programme

mais : on peut pallier "facilement"  :
window.open avec le même target + cookie si nécessaire
@+
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
je dirais même que c'est bien plus simple
que de retrouver le handle de la fenêtre ;o)
Messages postés
8
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
19 avril 2009

Et dans le cookie il faudrait mettre quoi ?

setcookie('monCookie',window.opener) ??
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
la valeur des variables telles que tu veux les retrouver,
comme elles sont réinitialisées !
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
un cookie c'est une chaîne de caractères et rien d'autres
pas d'objets ( opener par exemple )
Messages postés
262
Date d'inscription
vendredi 6 mai 2005
Statut
Membre
Dernière intervention
19 septembre 2014

je tente :) , ptète générer un index basé sur des frames qui inclue le fichier index de xoops (donc toucher au code php ki le génère ) ... et ensuite faire enregistrer une variable dans la page parent(donc la frame) qui va générer la popup....

y'a moyen , c'est sur , j'éspère que j'aurais pu t'aider, pas facile !! .... bye
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
si tu coches "réponse acceptée"  ça veut dire
    merci à toi et problème résolu !

inutile que je te donne un exemple alors ???
 la page mère

<script>
    window.open("pop.htm","pop");
</script>

 le pop-up
<html>   
   
       
       
       
        <script>
            var nb=document.getElementById("nb");
            var saisie=document.getElementById("saisie");
            function rafraichir()
            {   var da = new Date();
                var d = new Date( Date.parse(da) + ( 1000*60*60*24*365 ) );
                document.cookie = nb.value+"_"+saisie.value +
                        ";expires=" + d.toGMTString() + ";" ;
                window.opener.location.reload();
            }
            if ( document.cookie  )
                    {   var tmp=document.cookie.split("_");
                        tmp[0]++;
                        nb.value=tmp[0];
                        saisie.value=tmp[1];
                    }
            else    {   nb.value="1";
                        saisie.value="saisissez un texte ici";
                    }
        </script>
   
</html>

je ne joue ici qu'avec des champs... pour qu'on voit ce qui se passe
à toi d'adapter !
Messages postés
8
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
19 avril 2009

Oui, pour le coup de la réponse acceptée j'ai cliqué machinalement, et je ne connaissais pas ce système.

Pour ta réponse, j'ai compris le système de création du cookie pour conserver les paramètres mais je ne sais si c'est la solution, car il ne faut pas que la popup recharge (cela créerait une interruption d'un message audio).
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
>>il ne faut pas que la popup recharge
pas de solution en javascritp alors
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
pas de solution si tu restes sur
"utiliser un pop-up,
rafraîchir la page mère,
continuer à utiliser le même pop-up sans le recharger"
je pense ( donc j'essuie )
il faut voir les choses autrement, mais on n'a pas toutes les billes...
Messages postés
8
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
19 avril 2009

Le problème est que je ne "maitrise" pas le système xoops.

Quand on navigue dans un site créé avec ce CMS, tout se recharge quand on change de page ...

D'un autre côté je veux faire écouter un message audio qui ne soit pas coupé quand on visite le site ( http://www.ch-pertuis.com ). Une page de xoops est composée de blocs qui peuvent être affichés sur toutes les pages ou seulement quelques unes. Mais quel que soit le chiox, ils sont rechargés pendant la navigation.
Donc le seul moyen que j'ai imaginé c'est de créer une popup pour diffuser l'audio ... et ce rechargement des parents pose problème pour communiquer avec la popup.

Voila, tu sais tout ! Si tu as une autre solution ...
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
>>faire écouter un message audio qui ne soit pas coupé quand on visite le site
primo, déjà, vaut mieux éviter... ça lasse vite les visiteurs !
deuxio, c'est la même histoire que jouer une musique sans l'interrompre
kimjoa t'as donné la seule solution : les iframe
@+