Forcer un téléchargement via un navigateur

Je cherche un moyen de forcer un téléchargement sur une URL que vous mettez dans votre navigateur (de préférence le champ d'adresse de votre navigateur mais sans appuyer sur entrée, afin que l'URL ne soit pas chargée en premier). Cela devrait fonctionner pour n'importe quel lien, pas seulement certains types de fichiers. Fondamentalement, cela devrait être l'analogue d'un clic droit sur un lien et de choisir l'option "enregistrer sous".

Ma "première" solution de contournement actuelle est un signet avec le code javascript suivant:

javascript:document.body.innerHTML="<a download" + "sitelink".link(window.location.href).substring(1);

Cela va créer un vide page avec juste un lien vers le site sur lequel j'étais en cliquant sur le signet. De là, je peux ensuite l'utiliser avec le clic droit et l'option "enregistrer sous". Fonctionne bien pour toutes sortes de fichiers, par exemple. fichiers mp4, fichiers texte, fichiers html, etc.

Cependant, cela ne fonctionne pas tout le temps, actuellement j'ai le (s) problème (s) suivant (s):

  • Si le navigateur doit "charger" un fichier volumineux avant de créer le lien, ce qui prend du temps avec certains fichiers volumineux. J'ai un problème actuel, où un fichier PFD ne fonctionne pas soyez reconnu en tant que PDF et analysez-le en tant que texte dans la fenêtre du navigateur qui s'affiche un peu comme ceci %PDF-1.5 %�50obj<>x��... mes solutions de contournement fonctionnent, mais ce n'est pas très performant si le fichier a plusieurs Mo. (Et à cause de l'analyse syntaxique, l'enregistrement du contenu de la fenêtre du navigateur ne crée plus un fichier PDF correct)

  • Avec des fichiers stockés localement (par exemple des fichiers PDF dans le visualiseur PDF de Firefox). Mais les fichiers PDF ne sont pas si mauvais que ça puisque la visionneuse me donne un téléchargement bouton.

Ma solution actuelle ne fonctionne pas bien pour les gros fichiers (comme indiqué ci-dessus). J'utilise donc actuellement ma "deuxième" solution de contournement: je crée un simple fichier de site Web avec juste le lien (j'utilise toujours le même fichier HTML en échangeant simplement le lien), j'ouvre le code HTML qui inclut le lien dans le navigateur, puis je clique dessus avec le bouton droit de la souris, etc.

Je me demande s'il existe une façon plus élégante de le faire? Je veux me débarrasser de la nécessité de ma deuxième solution de contournement (pour ouvrir mon HTML "manuel" fichier, mettez à jour le lien, puis faites un clic droit, etc.). Bien que je sois satisfait de toute solution de contournement qui économise du temps et est accessible depuis le navigateur (par exemple par un signet, etc.) , je préférerais des solutions qui peuvent être implémentées sans addons de navigateur. Si un addon est nécessaire, je préférerais l'open source.

Actuellement, mon navigateur principal est Firefox, mais n'hésitez pas à ajouter des solutions supplémentaires pour d'autres types de navigateurs.

demandé sur