SourceForge использует <iframe>
элемент с src=""
атрибут, указывающий на файл для загрузки.
<iframe width="1" height="1" frameborder="0" src="[File location]"></iframe>
(Побочный эффект: никакое перенаправление, никакой JavaScript, исходный URL остается неизменным.)
Обязательно подайте файл без заголовок без кэшей! IE имеет проблемы с этим, если пользователь пытается "открыть" загрузку, не сохраняя сначала.
Я недавно решил его путем размещения следующего сценария на странице.
setTimeout(function () { window.location = 'my download url'; }, 5000)
я соглашаюсь, что метаобновление было бы более хорошим, но если оно не работает, что Вы делаете...
Я ненависть , когда сайты усложняют, загружаю так много и взломы использования вместо старой доброй ссылки .
<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
цвет, не повторно загружает, если страницу оставляют открытой после перезапуска браузера, и т.д.
Похоже, это сработало для меня - во всех браузерах.
<script type="text/javascript">
window.onload = function(){
document.location = 'somefile.zip';
}
</script>