Я ненавижу , когда сайты так сильно загружают и используют хаки вместо старой доброй ссылки .
Мёртвая простая версия:
<a href="file.zip">Start automatic download!</a>
Это работает! В каждом браузере!
Если вы хотите загрузить файл, который обычно отображается встроенным (например, изображение), тогда 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