2010-10-06 6 views
2

J'ai une page qui génère un rapport, le rapport est envoyé au navigateur en pièce jointe. ce que je voudrais faire est .. désactiver le bouton générer un rapport, ou montrer un spinny s'il vous plaît attendre, et quand la pièce jointe a fini d'être généré et a été envoyé au navigateur je voudrais supprimer le logo spin/re activer le bouton ..Evénement javascript pour la pièce jointe téléchargée?

Y a-t-il un événement js comme, sur attachmentcomplete ou un tel?

grâce

nat

Répondre

2

est là un événement comme js, sur attachmentcomplete ou quelque?

Non. Le téléchargement de fichiers est entièrement hors du contrôle de JavaScript. La seule façon qui vous vient à l'esprit est que le script qui génère le rapport met à jour une sorte d'indicateur (par exemple un fichier temporaire) que vous pouvez fréquemment consulter depuis votre page en utilisant Ajax. Une fois le script généré, vous devez supprimer le drapeau.

Cependant, vous devrez décider si cela en vaut la peine pour un petit effet d'interface utilisateur.

+2

Quelqu'un sur Stackoverflow - peut-être que c'était T.J. - une fois l'idée de faire en sorte que le code de téléchargement définisse un cookie dans l'en-tête de réponse, un cookie avec une valeur aléatoire particulière que la page peut interroger. – Pointy

+0

@Pointy hey, bonne idée! Mais il ne sera pas possible de détecter quand le téléchargement * se termine * de cette façon, n'est-ce pas? –

+0

http://stackoverflow.com/questions/1106377/detect-when-browser-receives-file-download/3688765#3688765: si vous voulez passer à la fonction mineure au niveau suivant –