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 :aie: )
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:
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:
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
showModalDialog -> alternative
La persévérence est de mise!!!
Merde un probleme de 2 semaines au moins mais j'ai trouvé une astuce...:mrgreen:
Alors je vous fais part de ma solution
Code:
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:
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:
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 :aie:
Je ne mets pas résolu pour cette raison
merci beaucoup