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 :

Popup modale, comportement bizarre


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 5
    Points : 4
    Points
    4
    Par défaut [Résolu] Popup modale, comportement bizarre
    Bonjour,

    je veux créer une popup modale, et empcher un utilsateur de revenir sur la fenetre mere s'il na pas fermé la popup (validé ou au pire fermé). Si il tente de revenir sur la page, un message s'affiche et le focus revient sur la popup.

    Quand j'ouvre ma popup, la première fois que je reclique sur la page appelante sans avoir fermé la popup, le message s'affiche deux fois. (Toutes les fois suivantes, ca se passe sans souci).
    Le comportement est constaté sous IE (et le script doit fonctionner en priorité sous IE, c'est pas grave s'il ne fonctionne pas sous Mozilla)

    Quelqu'un sait comment remédier à ca ?

    Merci

    PS; le code de ma page appelante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <html>
    <head>
    <script>
    var mapopup;
    function gestionPopup() {
    	if (mapopup &&  ! mapopup.closed) {
    		mapopup.focus();
    		mapopup.alert('Veuillez valider la page avant de la quitter');
     
    	} else {
    		mapopup = null;
    	}
    }
    </script>
    </head>
    <body onfocus="setTimeout('gestionPopup()',5);">
    Fenetre Mere
    <INPUT TYPE="BUTTON" VALUE="Pop-up"
    onclick="mapopup = window.open('popup.html','Popup','height=100,width=100');return false;">
    </body>
    </html>

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    alors la franchement je voit pas,
    j'ai essayé pas mal de trucs sur les évènements et rien ne permet d'empécher ça, enfin j'ai pas trouvé.

    Ca doit etre ton document qui prend le focus deux fois, mais pourquoi juste a ce moment là ?

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    J'en étais arrivé à la même conclusion

    Y'a un truc qu'est vraiment pas beau mais qui marche, c'est de faire window.blur() sur le fenêtre mère quand on ouvre ou redonne le focus à la popup. Le message apparait qu'une fois, mais la fenêtre mère se trouve réduite dans la barre des tâches, et ça c'est vraiment pas joli.

    Est-ce que quelqu'un à une autre idée ?

  4. #4
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011

  5. #5
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Oui, j'y avais pensé
    Merci pour ce lien, je pense que je vais me rabattre la dessus (en plus, ca marche pour tous les navigateurs, donc c top)

    Par contre, je comprends toujours pas pourquoi ma fenêtre prend deux fois le focus !!!
    Et ça m'énerve de pas comprendre, donc si quelqu'un a une explication je suis toujours preneur

  6. #6
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    je sais pas, on dirais qu'il met dans un buffer le premier focus qui se fait sur la page quand elle se charge et qu'il le lance au premier "vrai" focus

  7. #7
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Du coup j'ai rusé un peu, et j'ai trouvé une parade, si ca interesse qqn :

    Code page appelante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <html>
    <head>
     
    <script>
    // Variable représentant la popup ouverte
    var FenetrePopUp;
    function gestionPopup(pPopup) {
     
    	if (pPopup &&  ! pPopup.closed) {
    		pPopup.champtest.value=1;
    		pPopup.focus();
    	} else {
    		pPopup = null;
    	}
    }
    </script>
    <script src="popup.js"></script>
    </head>
    <body onfocus="setTimeout('gestionPopup(FenetrePopUp)',5);">
    Fenetre Mere<br/>
    <INPUT TYPE="BUTTON" VALUE="Pop-up"
    onclick="FenetrePopUp = window.open('popup.html','Popup','height=100,width=100');return false;">
    </body>
    </html>
    Code popup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <html>
    <head>
    <script>
    function gestionMessage() {
    	if (champtest && champtest.value == 1 ) {
    		champtest.value=0;
    		alert('Veuillez valider la page avant de la quitter');
    	}
    }
    </script>
    </head>
    <body onFocus=gestionMessage();>
    <input type="hidden" name="champtest"/>
    Popup
    </body>
    </html>
    Du coup, le alert() est geré dans la popup, je pense que c ca qui etait responsable de mon problème

    je tag le sujet, c'est maintenant tout bon

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. xsl:test .... avec comportement bizarre
    Par Blue LC dans le forum XMLRAD
    Réponses: 2
    Dernier message: 10/06/2005, 13h56
  2. Fenêtre popup modale. Est-ce possible ?
    Par Amnesiak dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/02/2005, 17h35
  3. [ACESS][MEMO][ISNULL]Comportement bizarre
    Par seb.49 dans le forum ASP
    Réponses: 2
    Dernier message: 09/06/2004, 10h44
  4. [HttpClient] comportement bizarre, saute des catch()...
    Par iubito dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 04/02/2004, 15h25
  5. [Sybase] Comportement bizarre d'une table
    Par sdozias dans le forum Sybase
    Réponses: 4
    Dernier message: 03/02/2004, 10h39

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