Я ненавижу, когда сайты усложняют загрузку так много и используют хаки вместо старой доброй ссылки .
Мертвая простая версия:
download
Оно работает! В каждом браузере!
Если вы хотите загрузить файл, который обычно отображается встроенным (например, изображение), то у HTML5 есть download
атрибут, который заставляет загружать файл. Это также позволяет вам переопределить имя файла ( хотя есть лучший способ сделать это ):
<a href="report-generator.php" download="result.xls">Download</a>
Версия со страницей «спасибо»:
Если вы хотите отобразить «спасибо» после загрузки, используйте:
<a href="file.zip"
onclick="if (event.button==0)
setTimeout(function(){document.body.innerHTML='thanks!'},500)">
Start automatic download!
</a>
Функция в этом setTimeout
может быть более сложной и, например, загружать полную страницу через AJAX (но не перемещаться от страницы - не касаться window.location
и не активировать другие ссылки).
Дело в том, что ссылка на скачивание реальна, может быть скопирована, перетащена, перехвачена ускорителями загрузки, получает :visited
цвет, не перезагружается, если страница остается открытой после перезапуска браузера и т. Д.
Это то, что я использую для ImageOptim