IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Fermer une popup fille : conflit sous MFX ?


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Fermer une popup fille : conflit sous MFX ?
    Bonjour,

    Je développe actuellement une application php/ajax et je rencontre un petit problème avec firefox qui ne se pose pas avec IE (pour une fois que ce n'est pas l'inverse...)

    A partir d'une fenêtre mère, j'ouvre une popup fille contenant un calendrier. La variable global_popup est là pour stocker la popup (vérifier qu'il n'y en aura qu'une, et permettre de la fermer plus tard ...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var win = window.open(url, "popup_date", "height=" + hauteur + ",width=" + largeur + ",top=" + top + ",left=" + left + ",menubar=0,resizable=0,scrollbars=0,status=0,toolbar=0");
    			win.focus();
    global_popup = win;
    Dans la popup, je sélectionne des dates et lance un submit. Ce submit lance du php qui va modifier la base de donnée, puis recharge la popup. Dans le onLoad de la popup, j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var ParentWindow = (opener?opener:parent);
    	<? if ((isset($action))&&($action=='sauver')) {?>
    		ParentWindow.global_appel_depuis_cal = true;
    	    <?=	'ParentWindow.rechargeLieux('.$id_info_pere.', \''.$comnumcom.'\', '.$id_info.');';?>
    	<?} ?>
    et ma fonction recharge_Lieux recharge une partie de ma page principale (ParentWindow) et à la fin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if((global_appel_depuis_cal == true)&&(global_popup.closed == false)){
                window.top.focus();
                window.global_popup.close();
                global_appel_depuis_cal = false;
                return true;
            }
    (global_appel_depuis_cal est là pour voir d'où la fonction a été appellée, car elle peut aussi ne pas déclencher la fermeture de la popup ...)

    Tout cela marche fort bien, la popup est bien fermée sous IE. Sous Firefox aussi, sauf qu'elle ne se ferme que lorsqu'on bouge la souris dans la popup ! D'ailleurs, le focus sur la fenêtre parente ne se fait pas non plus. Ce qui pourrait se réveler assez génant pour un utilisateur un peu impatient...

    J'ai dans l'idée qu'il s'agit d'un conflit d'évenements, mais je ne vois pas trop où. (On utilise scriptaculous-prototype pour l'Ajax, je dois vous avouer que je ne suis pas une experte en la matière )

    Auriez-vous une lumineuse idée ? Merci.

    Il est à noter que je ne fais pas un window.close() dans le popup directement car cela fait planter le recharge_Lieux, sans doute à cause d'un conflit aussi... Et que la console JS de Firefox ne me donne aucune erreur.

  2. #2
    Membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique

    Informations forums :
    Inscription : Mars 2006
    Messages : 71
    Points : 63
    Points
    63
    Par défaut
    Dans la faq j'ai trouvé cela je ne sais pas si c'est exactement ton probléme.

    http://javascript.developpez.com/faq...#fermerFenetre

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var ParentWindow = (opener?opener:parent);
    opener est en lecture seule ...
    il n'y a que IE qui fasse l'erreur de pouvoir modifier l'opener ...

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Ah, j'avais pourtant pris cette façon de faire sur ce forum, je retourne à mon bon vieux window.opener dans ce cas. Ceci dit il me semblait juste donner la valeur de opener (si elle existe et n'a pas été modifiée par un faux navigateur) à ParentWindow, sinon je lui donne parent. Ceci dit, étant donné qu'il n'y a pas de frames dans mon appli, ce n'est peut-être pas la peine.

    Mais le problème se posait déjà avant.

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    pareil le window.opener est en lecture seule !

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Mais... dans ce cas, pourrais tu m'indiquer OU je le modifie ? Il ne me semble l'utiliser qu'en lecture seule !

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    :red: désolé je n'avais pas bien compris ton problème ...

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Quelqu'un aurait-il eu une idée lumineuse s'il vous plait ? Je viens de découvrir que avec mozilla 1.5 il fallait cliquer sur la fenêtre pour qu'elle se ferme, et qu'il n'y a que sur 2.0 qu'il faut bouger la souris ... assez génant !

Discussions similaires

  1. fermer une popup depuis la fenetre paren
    Par jlassira dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 05/05/2006, 15h28
  2. comment fermer une popup
    Par jack_1981 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/04/2006, 00h39
  3. fermer une popup depuis une autre page que l'opener
    Par totoche dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/12/2005, 14h31
  4. Comment fermer une popup après un certains temps ?
    Par magic8392 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/10/2005, 12h06
  5. [VB.NET] Fermer une popup depuis une webform ?
    Par Nycos62 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 27/04/2004, 10h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo