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 :

window auto close


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de avogadro
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 412
    Points : 188
    Points
    188
    Par défaut window auto close
    Salut,

    mon probleme est le suivant, sur une page pour forcer le téléchargement d'un fichier, txt ou pdf ou autre, j'utilise une page annexe... par contre que j'accepte ou pas le téléchargement du fichier, la page de se ferme pas, mon script 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
    <?php
     
     $fichier = $_GET['file']; 
     $chemin = 'upload/' . $fichier;
     
     if (file_exists($chemin))
      {
         header('Content-disposition: attachment; filename="' . $fichier . '"');
         header('Content-Type: application/force-download');
         header('Content-Transfer-Encoding: binary');
         header('Content-Length: '. filesize($chemin));
         header('Pragma: no-cache');
         header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
         header('Expires: 0');
         readfile($chemin);
         echo "<script language='javascript'>self.close();</script>";
     }
     else
     {
         $erreurFichier = 'le fichier "' . $fichier . '" n\'existe pas. Veuillez-nous excusez pour le désagrément.';
     }
     
    ?>
    toute ces solutions ne marchent pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    windows.close();
    self.close();
    setTimeout("self.close();",1000)
    auriez vous une solution?

    Merci

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    En Javascript c'est:
    window.close()
    et non windows.close() !!!

    @+

  3. #3
    Membre habitué Avatar de avogadro
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    faute de frape dans mon post, window.close(); ne marche pas

    ps : je la lance avec ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    onClick=\"window.open('./dl.php?file=$fichier','Erreur','toolbar=0,
     location=0, directories=0, status=0, scrollbars=0, resizable=0, 
    copyhistory=0, menuBar=0, width=240, height=97');return(false)\"

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Est ce que le debuggeur javascript t'annonce une erreur ou pas ??

  5. #5
    Membre habitué Avatar de avogadro
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    non pas d'erreur sinon j'aurais su d'ou ca viens!

    ps: par contre window.close(); marche sous IE mais pas sous FF!

  6. #6
    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
    attibues ton window open à une variable dans la page mère ...
    puis depuis la page fille appelle un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.opener.mavariable.close()

  7. #7
    Membre habitué Avatar de avogadro
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    idem, page mere :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script language="javascript">
     
    var mavariable = "onClick=\"window.open('./dl.php?file=$fichier','Erreur','toolbar=0, location=0, directories=0, status=0, scrollbars=0, resizable=0, copyhistory=0, menuBar=0, width=240, height=97');";
     
    </script>
    page générée :

    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
    <?php
     
     $fichier = $_GET['file']; 
     $chemin = 'upload/' . $fichier;
     
     if (file_exists($chemin))
      {
         header('Content-disposition: attachment; filename="' . $fichier . '"');
         header('Content-Type: application/force-download');
         header('Content-Transfer-Encoding: binary');
         header('Content-Length: '. filesize($chemin));
         header('Pragma: no-cache');
         header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
         header('Expires: 0');
         readfile($chemin);
         echo "<script language='javascript'>self.opener.mavariable.close();</script>";
     }
     else
     {
         $erreurFichier = 'le fichier "' . $fichier . '" n\'existe pas. Veuillez-nous excusez pour le désagrément.';
     }
     
    ?>

  8. #8
    Membre habitué Avatar de avogadro
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    j'ai aussi testé le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<html><body language='javascript' onbeforeunload='window.close();'><script language='javascript'>self.opener.mavariable.close();</script></body></html>";
    et le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<html><body><script language='javascript'>self.opener.mavariable.close();</script></body></html>";
    idem :/

  9. #9
    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


    non quand je dis attribuer le window open à une variable :


    page mère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var mypopup 
    function launchpop(){
     mypop=window.open('......')
    }
     
    .../...
     
    onclick="launchpop()"
    et dans la fille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.opener.mypopup.close()

  10. #10
    Membre habitué Avatar de avogadro
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    j'ai essayer de changer un peu parce que fais des requettes en php sur une bdd qui fait une boucle, soit je créer x fois la meme fonction, soit je lui rentre un parametre (meilleur choix ^^) donc voici mes script (qui ne marchent pas encore lol)

    dans le head:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script language='javascript'>
     
    var mypop; 
     
    function launchpop(lefichier){
     mypop=window.open('./dl.php?file='+lefichier,'Erreur','toolbar=0, location=0,
     directories=0, status=0, scrollbars=0, resizable=0, copyhistory=0, 
    menuBar=0, width=240, height=97');
    }
     
    </script>
    et apres un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	echo "<div id='list_msg'><form name='supprime' action='delete.php'
     method='post' style='display:inline;'>
    <input border=0 src='./images/delete.gif' type='image'
     Value='submit'>&nbsp;Message par $nom le $date&nbsp;
    <input type='hidden' name='id_post' value='$id'/></form>
    <hr>$message<br/><br/><hr>
    	<img src='./images/file.gif' alt='#'/><a href='#' 
    onClick=\"launchpop($fichier);\">Télécharge Fichier join</a></div>
    	<img id='sep' src='./images/separateur.gif' alt='separateur'/>";
    ici la page ne s'ouvre meme pas!

  11. #11
    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
    essaye déja de le faire avec des fichiers en dur juste en html javascript ou en mettant juste un paramètre fixes dasn le window.open ...

  12. #12
    Membre habitué Avatar de avogadro
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    oki, j'ai vite tapoté ca et ca marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <html>
    <head>
    <script language='javascript'>
    var mypop; 
    function launchpop(lefichier){
     mypop=window.open('./dl2.php?file='+lefichier,'width=240, height=97');
    }
    </script>
    </head>
    <body>
    <a href="#" Onclick="launchpop('world%20map.gif');"> CLICK ME </a>
    </body>
    </html>
    je l'ai retranscrit sur ma page php et ca marche aussi, j'ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.opener.mypop.close()
    dans ma page fille est ... ca marche pas ^^

    et avec le code bidon d'en haut, sur dl2.php quand le met ca il ne m'affiche rien du tout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <html>
    <body>
    <?php
     echo "totoqsd";
     $fichier = $_GET['file']; 
     echo $fichier;
     echo "toto";
    ?>
    </body>
    </html>
    mais si je fais ca, la fenetre se ferme bien (logique)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <html>
    <body>
    <?php
     echo "totoqsd";
     $fichier = $_GET['file']; 
     echo $fichier;
     echo "toto";
    ?>
    <script language="javascript">
    self.opener.mypop.close();
    </script>
    </body>
    </html>
    et si avec mon script original je fais ca:

    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
    <?php
     
     $fichier = $_GET['file']; 
     $chemin = 'upload/' . $fichier;
     
     if (file_exists($chemin))
      {
         header('Content-disposition: attachment; filename="' . $fichier . '"');
         header('Content-Type: application/force-download');
         header('Content-Transfer-Encoding: binary');
         header('Content-Length: '. filesize($chemin));
         header('Pragma: no-cache');
         header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
         header('Expires: 0');
         readfile($chemin);     
     }
     else
     {
         $erreurFichier = 'le fichier "' . $fichier . '" n\'existe pas. Veuillez-nous excusez pour le désagrément.';
     }
     
    ?>
    <html>
    <body>
    <script language="javascript">
    setTimeout("self.opener.mypop.close();",1000);
    </script>
    </body>
    </html>
    ca marche pas non plus, cest parce que la page modifie le header ou quoi? oO

  13. #13
    Membre habitué Avatar de avogadro
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    cest le meme principe que sur telecharger.com, quand tu télécharges un fichiers ta une toute petite fenetre qui s'ouvre en meme temps, celle ci servant a télécharger le fichier, j'ai vu que sur leur site il ne la supprime pas non plus, ca doit pas etre possible :s

    et autre probleme je ne sais pas d'ou ca viens mais sous IE quand je clic sur le lien le temps avant que le téléchargement se lance est assez long genre 3 secondes alors que normalement ca vient tout de suite !

  14. #14
    Membre habitué Avatar de avogadro
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    je pourais pas faire ca? (dans le principe parce que mon script marche pas)

    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
    <script language="javascript">
    window.onbeforeunload = "
    <?php
     
     $fichier = $_GET['file']; 
     $chemin = 'upload/' . $fichier;
     
     if (file_exists($chemin))
      {
         header('Content-disposition: attachment; filename="' . $fichier . '"');
         header('Content-Type: application/force-download');
         header('Content-Transfer-Encoding: binary');
         header('Content-Length: '. filesize($chemin));
         header('Pragma: no-cache');
         header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
         header('Expires: 0');
         readfile($chemin);         
     }
     else
     {
         $erreurFichier = 'le fichier "' . $fichier . '" n\'existe pas. Veuillez-nous excusez pour le désagrément.';
     }
     
    ?>
    "
    self.opener.mypop.close();
    </script>

Discussions similaires

  1. Auto Close = True or False ?
    Par zinzineti dans le forum Administration
    Réponses: 3
    Dernier message: 07/10/2010, 10h10
  2. Problème avec window.close()
    Par Didje dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 13/12/2005, 17h32
  3. window.close();
    Par 12_darte_12 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/10/2005, 14h37
  4. après un window.close() la page se réouvre toute seule???
    Par linux dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/08/2005, 17h29
  5. On Windows Closing ???
    Par BainE dans le forum MFC
    Réponses: 4
    Dernier message: 29/08/2005, 12h38

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