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 :

fênetre modal ou popup normal


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Par défaut fênetre modal ou popup normal
    Bonjour
    j'ai une application qui me génère un pdf en php
    ensuite me redirige vers une page ou en javascript j'ouvre une popup

    2 questions:
    D'abord j'hésite entre utiliser le window.open ou le window.showModalDialog

    la fenetre modal est parfait puisque par la suite l'usager est obliger de la fermer pour pouvoir poursuivre
    sauf que dans cette popup, il y a 2 liens: 1 fermé la fenetre et l'autre télécharger le pdf qui pointe sur une page php contenant mon script de download de fichier.

    Or le probleme avec la fenetre modal c'est que quand je click sur télécharger, ben ca m'ouvre une autre fentre (blanche car il n'y a rien a afficher) et m'affiche le dialogue de téléchargement...

    Par contre avec la popup normale (window.open), quand je click sur télécharger, ca m'affiche seulement le dialogue de téléchargement

    Bon alors pourquoi vouloir la fenetre modal si la fenetre normal affiche ce que je veux?, et bien c'est juste pour prevenir pour ne pas que l'utilisateur oublie de fermer la fenetre de téléchargement...

    2e question:
    Ce que j'ai penser c'était d'utiliser les meta refresh pour fermer la popup automatiquement après 8 seconde, donc l'utilisateur a le temps de clicker sur le lien ou s'il ne choisi rien ca ferme tout seul...
    Avec la fenetre modal ca fonctionne meme si on click sur télécharger le fichier...la fenetre popup ferme (mais il y a tjrs le probleme de l'autre fenetre ouverte qui reste ouverte )

    avec la popup normal, si je click sur télécharger le fichier, la fenetre ne se ferme pas automatiquement, donc j'en reviens au meme probleme, si l'utilisateur ne pense pas à la fermer par lui meme elle va rester ouverte

    Comment je fais?
    ou encore qu'est ce que je n'ai pas fais de correct ou une mauvais utilisation
    je laisse mon appel de fenetre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //Modale
    window.showModalDialog("popup2.php?mod=9","popupFeuilleTravail",
    	"dialogWidth:460px;dialogHeight:200px;center:1;scroll:0;help:0;status:0");
     
    //normale
    window.open("popup2.php?mod=8", "popupFeuilleTravail",
    	"width=460,height=200,scrollbars=0,left=" +
    	((screen.width - 460)/2) + ",top=" + ((screen.height - 150)/2) );
    et dans ma page de 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
    17
    18
    19
    20
    ...
    echo'
    	<center><font size="+2" color="#002B87" style="font-weight:bold ">Choisir votre action</font></center>
    	<table width="80%" border="1" bordercolor="#002B87" align="center" bgColor="#FFFFFF">
    		<tr>
    			<td align="center">
    				<br><a class="lien" href="./download.php?type=pdf&file='.$nomFichier.'&dossierPath='.$saveDir.'" name="linkDownload">Feuille de travail version imprimable</a><br>
    			</td>
    		</tr>
    		<tr>
    			<td align="center">
    				<br><a class="lien" href="#" onclick="javascript:window.close();">Fermer cette fenêtre</a>
    			</td>
    		</tr>
    	</table>
    	<br><center><font size="-1">(Cette fenetre se fermera automatiquement dans <b>10 secondes</b>)</font></center>
    	<meta http-equiv="refresh" content="10;URL=javascript:window.close();">
    ';
    ...
    Lorsque je click sur le lien télécharger...
    La partie en bleue fonctionne avec une fenetre modal
    mais pas une popup normal (window.open) Est-ce que c'est du au fait que la popup perd sont focus sur le clique du lien quand elle n'est pas modal?

    merci de votre aide

  2. #2
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    heu de mémoire y'a pas un paramètre "dependant" pour un popup qui lie la fermeture de la mère a celle de la fille ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre émérite
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Par défaut
    Et bien je ne sais pas s'il en existe un...
    Je ne connais pas assez le javascript et mes recherche ne mène a rien
    j'avais contourner le probleme en me pliant a utiliser une popup

    Mais ce probleme a refait surface dans une autre partie de mon application
    Cette fois je dois ABSOLUMENT utiliser la fentre modale pour ne pas que l'utilisateur puisse faire autre chose avant de fermer cette fenetre

    J'ai ENCORE, un leins télécharger la version imprimable de l'affichage qui pointe sur un pdf... et en clickant sur le liens ca ouvre une 3e fenetre portant l'url du href de mon liens..(c'est normal et logique en fait... )
    Mais moi je ne veux pas, je veux seulement la fenetre de téléchargement qui serait a meme la fenetre modal comme dans tout le reste de mon application quand j'ai un liens cliquer ici pour télécharger la version imprimable...

    Ma fenetre modal est ouverte comme le code dans le premier post
    le code de ma page ouvert dans la modale est le suivant:

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    <?php
    $fin = (isset($_SESSION['simili'])) ? count($_SESSION['simili']) : 0;
    if($fin > 0){
     for($i = 0;$i<$fin;$i++){
      $strScriptPop = "SELECT dossierNum, DATE_FORMAT(datePerte,'%d/%m/%Y') AS datePerte, civiquePerte, ruePerte, villePerte, cpPerte, DATE_FORMAT(ouvertureDossier, '%d/%m/%Y') as dateOuvre, description, clientAssureNom, clientAssurePrenom ";
      $strScriptPop .= "FROM tbldossier ";
      $strScriptPop .= "LEFT OUTER JOIN tblcategoriesinistre ON tbldossier.categorieID = tblcategoriesinistre.categorieID ";
      $strScriptPop .= "LEFT OUTER JOIN tblclientassure ON tbldossier.clientAssurerID = tblclientassure.clientAssureID ";
      $strScriptPop .= "WHERE dossierID = '".$_SESSION['simili'][$i]."'";
    					
      $reqPop = $objConT->dbQuery($strScriptPop);
    			
      if(mysql_num_rows($reqPop)>0){
       $resPop = mysql_fetch_assoc($reqPop);
       //-------Affichage dans la popup--------//
    	echo'<table width="80%" border="1" bordercolor="#002B87" align="center" bgColor="#FFFFFF" style="border-collapse:collapse;">
    		<tr>
    			<td align="left" width="50%">
    				<b>Numéro de Dossier : </b>'.$resPop['dossierNum'].'
    			</td>
    			<td align="left"  width="50%">
    				<b>Assuré : </b>'.((isset($resPop['clientAssureNom'],$resPop['clientAssurePrenom'])) ? $resPop['clientAssureNom'].' '.$resPop['clientAssurePrenom'] : ((isset($resPop['clientAssureNom'])) ? $resPop['clientAssureNom'] : 'non disponible')).'
    			</td>
    		</tr>
    		<tr>
    			<td align="left">
    				<b>Dossier inscrit le : </b>'.$resPop['dateOuvre'].'
    			</td>
    			<td align="left">
    				<b>Date de la perte : </b>'.$resPop['datePerte'].'
    			</td>
    		</tr>
    		<tr>
    			<td align="left" colspan="2">
    				<b>Adresse de perte : </b>'.$resPop['civiquePerte'].', '.$resPop['ruePerte'].', '.$resPop['villePerte'].', '.$resPop['cpPerte'].'
    			</td>
    		</tr>
    		<tr>
    			<td align="left" colspan="2">
    				<b>Sinistre : </b>'.$resPop['description'].'
    			</td>
    		</tr>
    	</table>
    	<hr width="85%" color="#002b87">					
    	';
    	//----------Fin de l'affichage en popup-------------//
    	//--------------------------------------------------//
    	//-------------Affichage dans le pdf----------------//	
    	
    	...
    				
    	//Lien d'impression et fermeture
    	echo '
    		<br><center><a class="print" href="./download.php?type=pdf&file='.$nomFichier'&dossierPath='.$saveDir.'" title="Cliquer ici pour avoir une version imprimable de cette alerte">Version imprimable</a></center>
    		<br><center><font size="-1"><a class="close" href="#" onclick="javascript:window.close();" title="Fermer cette fenetre">Fermer la fenetre [X]</a></font></center>
    	';
    				
      }//Array SIMILI > 0
     }
    }
    ?>
    Est-ce qu'il y a moyen que ca n'ouvre pas une autre fenetre avec le lien en orangé??

    Merci

  4. #4
    Membre émérite
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Par défaut showModalDialog -> alternative
    La persévérence est de mise!!!
    Merde un probleme de 2 semaines au moins mais j'ai trouvé une astuce...

    Alors je vous fais part de ma solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //ouverture de la popup
    window.open("popupFlag.php", "popupFeuilleTravail",
    	"width=800,height=520,scrollbars=1,left=" +
    	((screen.width - 800)/2) + ",top=" + ((screen.height - 520)/2) );
    Dans la page popupFlag.php, la partie en orange permet de garder la popup sur le dessus des fenetre du navigateur, et l'utilisateur doit la fermer pour revenir à la fenetre parente
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <body onBlur="this.focus();">
    Le liens pour le téléchargement, je voulais également que la popup se ferme et m'affiche ma boite de dialogue de download
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a class="print" href="#" onclick="javascript:window.opener.location.href=\'./download.php?type=pdf&file='.$nomFichier.'&dossierPath='.$saveDir.'\';window.close();">Version imprimable</a></center>
    dans le fond j'envoie à la fenetre parente le script de téléchargement

    Alors le tout fonctionne et pour IE et pour ff
    MAIS sous ff, le focus ne se fait pas très bien, dans le sens si je click 1 fois sur ma fenetre parent alors que ma popup est là, elle retse sur le dessus, un second click sur la fenetre parent, la popup n'a plus le focus... donc la fenetre parent tombe en premier plan

    Si vous connaissez des solutions pour conserver le focus sur la page ouverte en window.open, je suis preneur, je crois que le probleme provient de onBlur, seulement sous ff car ca marche super sous IE


    Je ne mets pas résolu pour cette raison
    merci beaucoup

  5. #5
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418

  6. #6
    Membre émérite
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Par défaut
    merci
    et très jolie en plus

    bonne semaine à tous

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 07/09/2012, 18h19
  2. Données dans une fênetre modale
    Par AVoid dans le forum jQuery
    Réponses: 4
    Dernier message: 24/05/2012, 11h22
  3. Toujours fênetres modales
    Par namstou3 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 20/09/2007, 12h25
  4. Popup modale, comportement bizarre
    Par Mustik dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 12/01/2006, 19h38
  5. 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

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