L'utilisation de cette fonction:
var downloadURL = function downloadURL(url) {
var hiddenIFrameID = 'hiddenDownloader',
iframe = document.getElementById(hiddenIFrameID);
if (iframe === null) {
iframe = document.createElement('iframe');
iframe.id = hiddenIFrameID;
iframe.style.display = 'none';
document.body.appendChild(iframe);
}
iframe.src = url;
};
La façon dont il fonctionne, c'est par la création d'une iframe invisible (une seule fois) qui peut ensuite être utilisé pour télécharger des fichiers à partir d'internet.
Pour forcer le navigateur à télécharger un fichier qu'il serait capable de rendu (comme le HTML ou des fichiers de texte), vous devez le serveur pour configurer le fichier de Type MIME pour une absurde de la valeur, comme application/x-please-download-me
ou alternativement application/octet-stream
, qui est utilisé pour des données binaires arbitraires.
Si vous ne souhaitez ouvrir dans un nouvel onglet, la seule façon de le faire c'est pour l'utilisateur à cliquer sur un lien avec ses target
attribut _blank
.
En jQuery:
$('a#someID').attr({target: '_blank',
href : 'http://localhost/directory/file.pdf'});
Chaque fois que le lien est cliqué, il va télécharger le fichier dans un nouvel onglet/fenêtre.