Fermer toutes les popups filles d'une fenêtre [Résolu]

Signaler
Messages postés
498
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
-
Messages postés
498
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
-
Bonjour,

j'ai mon site qui ouvre des popups avec des noms précis. Je voudrais lorsque l'utilisateur ferme le site (onunload sur la page principale), que toutes les popups ayant été ouvertes (et encore actives) soient fermées par javascript.

Comment je peux faire ?

<ol><li>Est-ce qu'il faut les mettres dans un tableau puis parcourir le tableau lors de la fermeture ?</li><li>Est-ce qu'il existe pas une petite méthode pour récupérer les window filles ?</li></ol>Merci

3 réponses

Messages postés
498
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
6
Bon, j'ai trouvé la solution qui me convenait. Je l'explique rapidement :

index.html qui contient une iframe. maFrame.jsp

code javascript dans index.html :
var child;

function addWin(win)  {
    if (child == null) {
        child = new Array();
    }
    child[child.length] = win;
}

function closeApplis() {
     if (child != null) {
         for (var i=0;i<child.length;i++) {
              child[i].close();
         }
    }
}

maFrame.jsp ouvre popups. A chaque ouverture, je fais :
top.addWin(OpenWin);

Et pour finir, sur le onunload de index.html, je brache ceci :

Résulat, je peux naviguer dans l'iframe, mais seulement quand on quitte le site, les popups se ferment...
Messages postés
454
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
18 avril 2007
2
Bonjour,
je pense qu'en définissant chacune de tes popups dans un tableau tu pourra les fermer, exemple :

var fenetres_actives=[];



fenetres_actives.push(window.open("tapage"));
fenetres_actives.push(window.open("encore une page"));



et à la fin :
for(i=0;i<fenetres_actives.length;i++){fenetres_actives[i].close();}






Ou encore dans chacune de tes popups, dans leur code source tu rajoute :
window.opener.onunload=window.self.close();

<hr />



<hr />
<sup>
STFOU
</sup>
Messages postés
498
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
6
Bon, alors c'est un peu plus compliqué.

STFOU, c'est ce que je fais actuellement, remplir un tableau de mes popups. Ca marche, le truc étant que je dois faire la fermeture dans la page qui contient mon iframe.

J'ai fais un test ce matin, ca marche, lorsque je n'ai pas rafraîchit l'iframe. Si je la rafraichit, (ce qui arrivera), je pense que le tableau est réinitialisé, donc il perd les pointeurs vers les popups.

Comment à l'instar de l'exemple ci dessous, accéder à une variable js depuis l'iframe vers le conteneur de l'iframe. Un truc du genre :

top.document.maVar , ou top.maVar

Je voudrais que le tableau ne soit pas local à l'iframe, mais local au conteneur de l'iframe pour ne pas le perdre à chaque fois que la page est rechargée...


Accéder à une variable js d'une iframe
http://www.wikistuce.info/doku.php/javascript/lire_une_variable_qui_se_trouve_dans_une_frame_ou_un_popup