Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1378 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [HTML,JS] Tester si une popup est toujours ouverte

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[HTML,JS] Tester si une popup est toujours ouverte

n°241723
Toucouch
Posté le 08-11-2002 à 13:02:16  profilanswer
 

Salut!
 
Voilà mon problème:
 
Dans une fenêtre M (comme mère), j'ai un bouton B qui doit agir sur une fenêtre popup F (comme fille) de la façon suivante:
- si F n'a pas encore été ouverte, l'ouvrir (ça, pas de souci);
- si F a été ouverte et l'est toujours, lui donner le focus (toujours pas de souci);
- si F a été ouverte, puis fermée par l'utilisateur, ouvrir une nouvelle fenêtre F.
 
C'est sur ce dernier point que je coince: comment savoir si une fenêtre fille existe toujours?
 
Voici du code pour illustrer ce que j'ai fait:

Code :
  1. <html>
  2. <head>
  3.   <script>
  4. var fenetreFille = 0;
  5. function actionBouton()
  6. {
  7.   if(!fenetreFille)
  8.     fenetreFille = window.open("pageFille.html" );
  9.   else
  10.     fenetreFille.focus();
  11. }
  12.   </script>
  13. </head>
  14. <body>
  15. <a href="#" onclick="actionBouton();">Le Bouton</a>
  16. </body>


Avec ce code, le problème c'est que si l'utilisateur a fermé lui-même la fenêtre fille F, la fenêtre mère M n'en sait rien.
 
Des idées?
 
 
Edit: modification du test dans le code (ajout du !) [b][/b]


Message édité par Toucouch le 12-11-2002 à 13:25:06
mood
Publicité
Posté le 08-11-2002 à 13:02:16  profilanswer
 

n°241753
lorill
Posté le 08-11-2002 à 14:05:27  profilanswer
 

euuuuh
 

Code :
  1. if(fenetreFille)
  2.    fenetreFille = window.open("pageFille.html" );
  3. else
  4.    fenetreFille.focus();


 
donc en gros tu appliques focus() a un objet qui n'existe pas, j'ai bien compris ?

n°241759
Toucouch
Posté le 08-11-2002 à 14:18:43  profilanswer
 

lorill a écrit a écrit :

euuuuh
 

Code :
  1. if(fenetreFille)
  2.    fenetreFille = window.open("pageFille.html" );
  3. else
  4.    fenetreFille.focus();


 
donc en gros tu appliques focus() a un objet qui n'existe pas, j'ai bien compris ?




Au 1er appel de la fonction, fenetreFille vaut 0, donc on ouvre la fenêtre fille et on enregistre son "handle" dans fenetreFille.
Aux appels suivants, on utilise le "handle" de F stocké dans fenetreFille pour lui donner le focus.
Le hic, c'est quand l'utilisateur a fermé lui-même F. Dans ce cas, effectivement, on applique focus() à un objet qui n'existe plus.
D'où ma question: comment tester si F existe toujours?

n°241765
lorill
Posté le 08-11-2002 à 14:34:50  profilanswer
 

je comprends bien ce que tu veux, mais il me semble que ton code fait exactement l'inverse  [:sinclaire]  
 
au debut fenetreFille vaut 0, donc tu passes pas dans ton if, mais dans le else, et donc tu active un truc inexistant.
 
ou alors j'ai de la merde dans les yeux, c'est bien probable, ca aussi  :sleep:

n°241769
lorill
Posté le 08-11-2002 à 14:37:21  profilanswer
 

sinon, en considérant que tu ai oublié de copier la négation dans le forum, y'a une methode bourrine :
 

Code :
  1. if(!fenetreFille)
  2.   fenetreFille = window.open(...)
  3. else
  4. {
  5.   try {
  6.     fenetreFille.focus();
  7.   } catch(error) {
  8.     //ici ton code
  9.   }
  10. }


 
mais y'a certainement mieux

n°243444
Toucouch
Posté le 12-11-2002 à 13:23:28  profilanswer
 

lorill a écrit a écrit :

je comprends bien ce que tu veux, mais il me semble que ton code fait exactement l'inverse  [:sinclaire]  
 
au debut fenetreFille vaut 0, donc tu passes pas dans ton if, mais dans le else, et donc tu active un truc inexistant.
 
ou alors j'ai de la merde dans les yeux, c'est bien probable, ca aussi  :sleep:  




:lol: :sweat: :honte:
OK, mea culpa, c'est moi qui ai de la merde dans les yeux! J'ai oublié le ! (ça m'apprendra à coder comme un goret!
 
Bien vu! :jap:

n°243447
Toucouch
Posté le 12-11-2002 à 13:28:21  profilanswer
 

lorill a écrit a écrit :

sinon, en considérant que tu ai oublié de copier la négation dans le forum, y'a une methode bourrine :
 

Code :
  1. if(!fenetreFille)
  2.   fenetreFille = window.open(...)
  3. else
  4. {
  5.   try {
  6.     fenetreFille.focus();
  7.   } catch(error) {
  8.     //ici ton code
  9.   }
  10. }


 
mais y'a certainement mieux




Ouais, pas con les exceptions... Mais j'espérais une méthode du genre "exists()" ou encore un attribut tableau de la fenêtre mère pour lister toutes les fenêtres filles ouvertes...
En attendant, ça pourra toujours faire l'affaire...
 
Merci bien! :jap: :hello:
A+

n°251549
Batman-Fr
powered by caféine
Posté le 22-11-2002 à 16:25:03  profilanswer
 

up !
 
ca m'interesse aussi  :bounce:


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [HTML,JS] Tester si une popup est toujours ouverte

 

Sujets relatifs
jsp 2 htmlSecuriser une page html + accessibilité réduite...-->
JavaMail -> mail en HTML/Text lu sur un webmailQuelques questions sur JS/CSS/HTML (Autres questions ...)
[html] je n'obtiens pas la mm chose en local et sur le web[HTML, JS]Form & submit
Insérer le contenu d'un fichier texte dans une feuille HTML[HTML] interpretation de code
[HTML] Comment faire pour qu'un lien ne soit pas souligné ?HTML 1.1 et ASP ?
Plus de sujets relatifs à : [HTML,JS] Tester si une popup est toujours ouverte


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR