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 :

effectuer un téléchargement puis fermer une fenêtre


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 36
    Points : 22
    Points
    22
    Par défaut effectuer un téléchargement puis fermer une fenêtre
    bonjour, je suis nouveau sur ce forum, aussi je vous prie de m'excuser si vous n'etes pas satisfait de la précision de ma question, ou si je poste dans un mauvais topic, mais normalement cela devrait être bon...

    pour mon stage, j'ai une page qui en ouvre une autre par "popup" (ce n'est pas vraiment une popup, puisqu'elle a un nom etc, mais c'est une fenetre qui s'ouvre quoi)...
    Cette "popup" s'ouvre très bien, et m'offre un lien vers le téléchargement d'un fichier. Ce fichier doit être quelconque, mais je dois toujours ouvrir une boite de téléchargement pour que l'utilisateur puisse enregistrer le fichier. Mon problème se décompose en plusieurs questions, qui n'ont pas trouvé de réponse malgré une semaine acharnée de voyages dans tous les forums possibles, bidouilles en tous genres, recherches avec des mots clés et expressions précis et une décomposition bout à bout du problème.

    Il faut aussi noter que j'ai besoin d'une compatibilité IE Firefox, PC et Mac, et que les langages auxquels j'ai accès sont uniquement ASP et javascript, sachant que j'aimerai ne pas avoir à recréer une page ASP (pour des questions de moindre accès), donc je préfèrerais pouvoir tout faire en javascript si possible.

    En gros, ce que la page de la popup est censée faire, c'est ouvrir le téléchargement (avec parfois une action à faire sur la base de données, que j'ai réussi à régler gràce à un XMLHTTPRequest ou équivalent IE, avec choix selon le navigateur), puis fermer la popup.

    cela marchait très bien sur IE de la façon suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="<%=urlFichier%>" target="_blank" onClick="window.close();">Télécharger le fichier</a>
    malheureusement, en faisant mes tests sur FF, je me suis aperçu qu'en fait, cela ne faisait que fermer la fenetre, j'ai donc essayé de temporiser avant le window.close avec une fonction sleep (qui m'a été inspirée par une fonction sleep trouvée sur internet) car setTimeout, je ne sais pas pourquoi ça ne marche pas (j'ai essayé toutes les syntaxes que j'ai vu sur internet, mais je pense qu'à cause de l'évenement, ça ne marche pas.). ma fonction sleep marche très bien, mais dans ce cas là, ça ne m'ouvre pas la boite de téléchargement.

    je voudrais donc savoir si quelqu'un a une idée pour ouvrir une boite de téléchargement, puis effectuer la fermeture de ma fenetre?

    merci d'avoir eu le courage de lire ce topic, et merci d'avance pour vos réponses...

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    et bienvenue sur le forum de developpez.com !

    Quant à la qualité de ta 1° question : aucun problème (si tout le monde pouvait exposer son pb de cette manière )

    Sinon, cela semble étonnant qu'un setTimeOut() ne résolve rien.
    Au cas où, parmi tes essais, as-tu tenté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="<%=urlFichier%>" target="_blank" onclick="setTimeout('self.close()', 1000);">Télécharger le fichier</a>
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onclick="window.open('<%=urlFichier%>');self.close();return false;">Télécharger le fichier</a>
    ??

    A+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 36
    Points : 22
    Points
    22
    Par défaut
    je suis plus trop sur, donc je vais tenter ça (ou retenter... )

    j'espère que ça va fonctionner, sinon au lieu du setTimout, quand j'utilise mon sleep, en fait j'ai l'impression que la fenetre garde la main, et que c'est pour ça que ça ne fonctionnait pas mon téléchargement

    dès que j'ai tenté tes trucs, je te dis si ça marche ^^

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 36
    Points : 22
    Points
    22
    Par défaut
    bon, c'est pas la joie, j'ai fait les tests sur firefox (censé quand même être plus intelligent que IE, dsl pour ceux qui pensent le contraire),
    la première solution que tu m'as proposée fonctionne presque comme il faut, à ceci près que je ne peux pas ouvrir le fichier, car aussitot que la boite de téléchargement était ouverte, ma fenetre, ainsi que la boite de téléchargement se sont fermées...
    la 2° solution ferme correctement ma fenetre, et m'ouvre le fichier: mais une fois que le fichier est téléchargé, cela m'ouvre une page vide.

    d'autre part, cela ne force pas le téléchargement (dans mon entreprise, ils peuvent très bien s'en servir pour les .doc ou .xls, ce qui fonctionnerait, mais aussi des .vcs ou autres qui auraient comme désavantage de ne pas pouvoir être modifiés comme il le faudrait, cela étant le but de la page que je fais en vérité)... est-il possible de faire en sorte que le navigateur ne prenne pas en compte qu'il connait les formats, ou quelque chose du genre?

Discussions similaires

  1. Comment fermer une fenêtre enfant MDI ?
    Par DeveloMagaly dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/09/2005, 13h10
  2. [Delphi 6] Empêcher l'ouverture ou fermer une fenêtre
    Par KrusK dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 08/09/2005, 11h55
  3. Fermer une fenêtre depuis une autre...
    Par nicolb dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/03/2005, 10h22
  4. Comment fermer une fenêtre quand la souris et clavier sont inactifs ?
    Par Goldenkiller dans le forum Composants VCL
    Réponses: 7
    Dernier message: 06/12/2004, 22h09
  5. Fermer une fenêtre au bout d'un certain temps.
    Par cprogil dans le forum Composants VCL
    Réponses: 5
    Dernier message: 27/11/2003, 18h25

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