0 votes

Fermer une fenêtre popup de navigateur seulement si l'utilisateur enregistre le fichier téléchargé

Nous avons une fenêtre popup où l'utilisateur fait quelques sélections et clique sur un bouton pour générer un fichier pdf. Nous montrons un affichage de la progression (gif animé), puis nous envoyons finalement le contenu du pdf à l'utilisateur avec content-disposition : inline. L'utilisateur imprime alors généralement le fichier pdf.

Pour certains utilisateurs, il n'existe pas de visionneuse en ligne pour les fichiers pdf, et l'utilisateur est invité à enregistrer le fichier pdf. Dans ces cas, l'affichage de la progression reste ouvert, même après la livraison du fichier. Quel est le meilleur moyen de détecter que l'utilisateur a choisi d'enregistrer le fichier, plutôt que de l'afficher en ligne ?

La seule idée que j'ai eue jusqu'à présent est de programmer une minuterie dans la fenêtre popup pour qu'elle se ferme si son contenu est toujours présent. En théorie, le minuteur serait effacé si le contenu de la fenêtre était remplacé par le visualisateur de pdf. Existe-t-il d'autres options ? Comment puis-je savoir combien de temps il faut régler la minuterie, si la génération du pdf peut prendre beaucoup de temps ? Puis-je envoyer d'abord les en-têtes http et ensuite le contenu du pdf pour déclencher rapidement le visualisateur de pdf ?

0voto

Bernard Chen Points 1883

Nous avons résolu ce problème en définissant une minuterie juste avant de demander au serveur de commencer à générer le PDF. Si le PDF est ouvert par le spectateur dans la fenêtre du navigateur, la minuterie est annulée. Si la minuterie n'est pas annulée, la fenêtre est fermée. Nous avons choisi un temps long pour la minuterie.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X