L'ouverture et la fermeture d'un nouvel onglet lors du téléchargement

Sur de nombreux sites (Dropbox en étant un bon exemple), lorsque vous cliquez sur un document pour le télécharger, il ouvre une nouvelle fenêtre/onglet, puis l'invite de téléchargement s'affiche, l'onglet/fenêtre se ferme immédiatement (alors que l'invite de commandes reste ouverte).

Comment puis-je reproduire ce comportement à l'aide de javascript?

Je pense qu'une approche serait de détecter l'apparition de l'invite de téléchargement, puis utilisez window.close(). Cependant, je ne suis pas sûr de savoir comment détecter cette invite.

Un cross-browser solution est préférable, mais rien qui marche dans Firefox est grandement apprécié.

Précisions

  1. Je fais cela dans un script Greasemonkey
  2. Le "lien" qui s'ouvre dans un nouvel onglet n'est pas nécessairement un lien direct vers le document. Parfois c'est une simple page qui lance le téléchargement en arrière-plan. Je fais référence à ce type de sites qui ont leur page "download"...ceux qui disent quelque chose comme "votre téléchargement va commencer sous peu, si elle ne démarre pas, veuillez cliquer ici".

Plus de précisions: en ce qui concerne le type de site web mentionné dans la clarification 2 ci-dessus, ce que je veux faire est de cliquer sur le lien de téléchargement, ont donné de téléchargement de chargement de la page dans une nouvelle fenêtre et la fenêtre se ferme une fois que le téléchargement a été lancé.

Donc, à moins que j'oublie, ils utilisent window.open, de pointer vers une URL (ce qui est à télécharger), et les en-têtes HTTP de la réponse sont spécifiques pour être téléchargé par l'utilisateur. Dès que la réponse frappe le navigateur, il se ferme automatiquement lui-même - que vous n'avez pas à faire quelque chose. Je vais voir si je peux trouver un exemple que j'ai utilisé
Êtes-vous à l'aide d'un serveur web spécifique?
Par exemple, vous avez besoin d'utiliser quelque chose comme ceci - stackoverflow.com/questions/8897458/... - en fonction de votre serveur web
Je ne suis pas totalement sûr de ce que vous demandez...entendez-vous ce site que je suis en train de mettre en œuvre? En fait, je suis juste à faire un petit script Greasemonkey, et il y a plusieurs sites différents, j'aimerais mettre en œuvre ce comportement.
Eh bien, où êtes-vous stocker les fichiers que vous souhaitez autoriser les utilisateurs à télécharger? Vous devez stocker les fichiers quelque part, puis de les rendre accessibles à l'utilisateur. Rendant disponible n'est pas assez, vous avez à servir le contenu sur HTTP et définir les en-têtes appropriés pour le faire se comporter de la façon dont vous le souhaitez. Je suppose que je ne suis pas sûr de savoir comment greasemonkey œuvres

OriginalL'auteur skittleys | 2012-12-04