Vérifier l'existence d'une popup par son nom [Résolu]

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

pour faire simple, j'ai 2 ie ouverts. Le premier m'ouvre une popup nommée "maPopup", la fonction this.open me retournant l'objet Popup.

Je voudrais savoir comment dans le 2eme ie, vérifier qu'une popup de ce nom existe ou pas, et si elle existe la récupérer pour alors faire un .focus dessus.

Comment récupérer l'objet popup dans mon 2eme ie, pour pouvoir faire un .focus dessus ?

(Actuellement, le 2eme ie fait un this.open("maPopup" ...  ce qui revient à un .focus puisqu'un autre ie l'a déjà ouverte), mais ca ne me convient pas).

Le contexte : il s'agit d'une web application en mode authentifié, et vu qu'on peut se logger plusieurs fois sous IE, il faut que la popup reste unique peut importe le nombre de navigateur ouverts.

Merci

7 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
>>un IE n°2 pouvait récupérer un objet window
d'un IE n°1.
>>S'il faut passer par Active X et compagnie,
    coté client, à mon humble avis : oui

>>c'est mort,
trop compliqué.
    pas tant que cela, mais il faudra quand même un autre langage

>>j'avais pensé à stocker la popup côté serveur,

   
à mon humble avis :
ce serait plus simple de voir de ce coté là.
    ( surtout si FireFox intervient )

>>mais ca oblige un aller retour client serveur.
    certes.






<hr />



Cordialement            Bul    
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
Bonjour,

    pas tout suivi, mais s'il s'agit de tester dans la 2ème pop-up
    si la 1ère est ouverte :

    page "principale" :

<script type="text/javascript">
    var p1=window.open("p1.htm");
    var p2=window.open("p2.htm");
</script>

    1er pop-up :

p1.htm, ne fait rien.

    2ème pop-up :

   
qui retourne true si le pop-up est fermé, false sinon.

    et si je n'ai pas compris, des explications supplémentaires m'aiderainet peut-être ?

<hr />


Cordialement        Bul    
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
ah....
>>il faut que la popup reste unique peut importe le nombre de navigateur ouverts.
j'avais pas lu... ça... ce qui veut dire tester la pop-up d'une autre instance ?



<hr />



Cordialement    Bul    
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
on ne dit pas que c'est exclusif IE, mais :

>>

vérifier qu'une popup de ce nom existe ou pas,



    activeX ( les API existent, probablement à écrire ? ) qui regarde les fenêtres ouvertes
    noter quelque part ( registre, fichier... ) que cette fenêtre est ouverte ou pas
>>pour pouvoir faire un .focus dessus
    activeX nécessaire ( les API windows existent
, probablement à écrire ?
)
    pour retrouver la fnêtre et lui donner la main.

    loin d'être sûr que ce soit une bonne approche.
    >>web application en mode authentifié
    ça veut dire quoi ?
    peut-être regarder du coté du serveur, s'il y a, ce serait beaucoup plus simple





<hr />



Cordialement                Bul    
Messages postés
497
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
6
Bah en fait, c'est une webapp J2EE sur un serveur tomcat.

Je viens de me rendre compte que le problème arrive aussi sous Firefox :
voilà ce que j'aimerais faire :
1°) ouvrir IE n°1, se logguer, ouvrir le lien qui ouvre la popup : disons qu'elle s'appelle 'maPopup'. L'objet window de la popup est stocké dans la page html dans un script Javascript. Comme ça, à l'avenir, je le récupère et je peux faire un focus dessus,etc...
2°) ouvrir IE n°2, il faut se relogguer. ouvrir le lien qui ouvre la popup. Là, mon script Javascript ne connaît pas la popup puisqu'elle n'a pas été ouverte par cet IE n°2, donc il va essayer d'en ouvrir une nouvelle. Le this.open rafraîchit la popup qui existe en fait (par le IE n°1), et moi je ne veux pas qu'elle soit rafraîchie, seulement 'focusée' (j'ai un traitement qui se lance à l'ouverture de la popup, mais pas lors du focus)

Donc je voulais savoir si un IE n°2 pouvait récupérer un objet window d'un IE n°1. S'il faut passer par Active X et compagnie, c'est mort, trop compliqué. Sinon, j'avais pensé à stocker la popup côté serveur, mais ca oblige un aller retour client serveur en plus par rapport au javascript seul.
Messages postés
497
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
6
Merci de ton aide.
Messages postés
497
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
6
Donc en gros, pour ceux qui seraient dans le même cas que moi, c'est pas possible en Javascript uniquement, et c'est logique. Tant pis :p