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

cs_lionhell 8 Messages postés dimanche 2 février 2003Date d'inscription 19 avril 2009 Dernière intervention - 18 avril 2009 à 12:41 - Dernière réponse : Bul3 4934 Messages postés samedi 1 juillet 2006Date d'inscription 2 février 2015 Dernière intervention
- 19 avril 2009 à 12:46
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 !
Afficher la suite 

Votre réponse

18 réponses

Meilleure réponse
cs_lionhell 8 Messages postés dimanche 2 février 2003Date d'inscription 19 avril 2009 Dernière intervention - 19 avril 2009 à 01:23
3
Merci
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

Merci cs_lionhell 3

codes-sources a aidé 81 internautes ce mois-ci

Commenter la réponse de cs_lionhell
Bul3 4934 Messages postés samedi 1 juillet 2006Date d'inscription 2 février 2015 Dernière intervention - 18 avril 2009 à 14:05
0
Merci
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
Commenter la réponse de Bul3
cs_lionhell 8 Messages postés dimanche 2 février 2003Date d'inscription 19 avril 2009 Dernière intervention - 18 avril 2009 à 14:23
0
Merci
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 !?
Commenter la réponse de cs_lionhell
Bul3 4934 Messages postés samedi 1 juillet 2006Date d'inscription 2 février 2015 Dernière intervention - 18 avril 2009 à 14:34
0
Merci
>>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
Commenter la réponse de Bul3
Bul3 4934 Messages postés samedi 1 juillet 2006Date d'inscription 2 février 2015 Dernière intervention - 18 avril 2009 à 14:35
0
Merci
>>>nom de target .... il doit bien y avoir un
équivalent en javascript !?
c'est window.open("page","target"..... )
Commenter la réponse de Bul3
cs_lionhell 8 Messages postés dimanche 2 février 2003Date d'inscription 19 avril 2009 Dernière intervention - 18 avril 2009 à 14:45
0
Merci
C'est hélas ce que je craignais ... pourquoi alors ne peut-on appeler la fenêtre "target" quand le parent s'est rafraichi !?
Commenter la réponse de cs_lionhell
Bul3 4934 Messages postés samedi 1 juillet 2006Date d'inscription 2 février 2015 Dernière intervention - 18 avril 2009 à 14:57
0
Merci
>>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
@+
Commenter la réponse de Bul3
Bul3 4934 Messages postés samedi 1 juillet 2006Date d'inscription 2 février 2015 Dernière intervention - 18 avril 2009 à 15:08
0
Merci
je dirais même que c'est bien plus simple
que de retrouver le handle de la fenêtre ;o)
Commenter la réponse de Bul3
cs_lionhell 8 Messages postés dimanche 2 février 2003Date d'inscription 19 avril 2009 Dernière intervention - 18 avril 2009 à 15:55
0
Merci
Et dans le cookie il faudrait mettre quoi ?

setcookie('monCookie',window.opener) ??
Commenter la réponse de cs_lionhell
Bul3 4934 Messages postés samedi 1 juillet 2006Date d'inscription 2 février 2015 Dernière intervention - 18 avril 2009 à 16:18
0
Merci
la valeur des variables telles que tu veux les retrouver,
comme elles sont réinitialisées !
Commenter la réponse de Bul3
Bul3 4934 Messages postés samedi 1 juillet 2006Date d'inscription 2 février 2015 Dernière intervention - 18 avril 2009 à 16:20
0
Merci
un cookie c'est une chaîne de caractères et rien d'autres
pas d'objets ( opener par exemple )
Commenter la réponse de Bul3
cs_Kimjoa 264 Messages postés vendredi 6 mai 2005Date d'inscription 19 septembre 2014 Dernière intervention - 18 avril 2009 à 20:47
0
Merci
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
Commenter la réponse de cs_Kimjoa
Bul3 4934 Messages postés samedi 1 juillet 2006Date d'inscription 2 février 2015 Dernière intervention - 19 avril 2009 à 08:48
0
Merci
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 !
Commenter la réponse de Bul3
cs_lionhell 8 Messages postés dimanche 2 février 2003Date d'inscription 19 avril 2009 Dernière intervention - 19 avril 2009 à 11:23
0
Merci
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).
Commenter la réponse de cs_lionhell
Bul3 4934 Messages postés samedi 1 juillet 2006Date d'inscription 2 février 2015 Dernière intervention - 19 avril 2009 à 11:25
0
Merci
>>il ne faut pas que la popup recharge
pas de solution en javascritp alors
Commenter la réponse de Bul3
Bul3 4934 Messages postés samedi 1 juillet 2006Date d'inscription 2 février 2015 Dernière intervention - 19 avril 2009 à 11:31
0
Merci
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...
Commenter la réponse de Bul3
cs_lionhell 8 Messages postés dimanche 2 février 2003Date d'inscription 19 avril 2009 Dernière intervention - 19 avril 2009 à 12:38
0
Merci
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 ...
Commenter la réponse de cs_lionhell
Bul3 4934 Messages postés samedi 1 juillet 2006Date d'inscription 2 février 2015 Dernière intervention - 19 avril 2009 à 12:46
0
Merci
>>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
@+
Commenter la réponse de Bul3

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.