Forza scarica un link pdf usando javascript / ajax / jquery

supponiamo di avere un link pdf ” http://manuals.info.apple.com/en/iphone_user_guide.pdf ” (solo per esempio e per farti sapere che il file non è sul mio server, ho solo il link) .. . Ora devo fornire un pulsante sul mio sito che scaricherà il file.

Ho provato varie cose come i metodi window.open, href etc. ma apre il link su un’altra finestra. lo so perché ora tutto il browser viene fornito con un plugin Adobe che lo apre in un’altra finestra, ma non esiste comunque alcun modo per dare all’utente la possibilità di scaricare piuttosto che aprirlo, attraverso lo scripting lato client ..

aiuto di plz .. grazie

Utilizza l’attributo “download” HTML5

click me 

Attenzione: al momento della stesura di questo documento, non funziona in IE / Safari, vedere: caniuse.com/#search=download

Modifica: Se stai cercando una soluzione javascript reale , per favore vedi la risposta di Lajarre

Ecco una soluzione Javascript (per gente come me che cercava una risposta al titolo):

 function SaveToDisk(fileURL, fileName) { // for non-IE if (!window.ActiveXObject) { var save = document.createElement('a'); save.href = fileURL; save.target = '_blank'; save.download = fileName || 'unknown'; var evt = new MouseEvent('click', { 'view': window, 'bubbles': true, 'cancelable': false }); save.dispatchEvent(evt); (window.URL || window.webkitURL).revokeObjectURL(save.href); } // for IE < 11 else if ( !! window.ActiveXObject && document.execCommand) { var _window = window.open(fileURL, '_blank'); _window.document.close(); _window.document.execCommand('SaveAs', true, fileName || fileURL) _window.close(); } } 

fonte: http://muaz-khan.blogspot.fr/2012/10/save-files-on-disk-using-javascript-or.html

Sfortunatamente lavora per me con IE11, che non accetta il nuovo MouseEvent. Io uso il seguente in quel caso:

 //... try { var evt = new MouseEvent(...); } catch (e) { window.open(fileURL, fileName); } //... 

Con JavaScript è molto difficile se non imansible (?). Suggerirei di utilizzare una sorta di linguaggio code-behind come PHP, C # o Java. Se dovessi usare PHP, potresti, nella pagina a cui il tuo post postare, fare qualcosa del genere:

  

Questo sembra funzionare anche per JS (da http://www.phpbuilder.com/board/showthread.php?t=10149735 ):

   Download this pdf  

Se htaccess è un’opzione, questo farà scaricare tutti i link PDF invece di aprirli nel browser

  ForceType application/octet-stream Header set Content-Disposition attachment  

In javascript usa il metodo preventDefault () del parametro args dell’evento.

 Download now! $('a').click(function(e) { e.preventDefault(); // stop the browser from following window.location.href = 'downloads/file.pdf'; }); 

Ecco l’esempio perfetto di download di un file usando javaScript.

Utilizzo: download_file(fileURL, fileName);