Как начать автоматическую загрузку файла в Internet Explorer?

Как инициализировать автоматический <meta http-equiv = "Обновить" content = "n; url"> файла в Internet Explorer?

Например, на странице загрузки я хочу, чтобы появилась ссылка для загрузки, и появилось сообщение: «Если загрузка не запускается автоматически ... и т. Д.». Загрузка начнется вскоре после загрузки страницы.

В Firefox это просто, вам просто нужно включить метатег в заголовок, urlгде n - количество секунд и <iframe>URL загрузки. Это не работает в Internet Explorer. Как сделать эту работу в браузерах Internet Explorer?

javascript,html,internet-explorer,meta-tags,

65

Ответов: 15


98 принят

SourceForge использует src=""элемент с <iframe width="1" height="1" frameborder="0" src="[File location]"></iframe> атрибутом, указывающим на файл для загрузки.

<a href="file.zip">Start automatic download!</a>

(Побочный эффект: без перенаправления, без JavaScript, исходный URL-адрес остается без изменений.)


46

Я ненавижу, когда сайты усложняют загрузку так много и используют хаки вместо старой доброй ссылки .

Мертвая простая версия:

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


19 ов

У меня была аналогичная проблема, и ни один из вышеперечисленных решений не работал для меня. Вот моя попытка (требуется jquery):

$(function() {
  $('a[data-auto-download]').each(function(){
    var $this = $(this);
    setTimeout(function() {
      window.location = $this.attr('href');
    }, 2000);
  });
});

Использование: просто добавьте атрибут, вызываемый data-auto-downloadк ссылке, указывающей на интересующую загрузку:

<p>The download should start shortly. If it doesn't, click
<a data-auto-download href="/your/file/url">here</a>.</p>

Он должен работать во всех случаях.


19 ов

Я недавно решил его, разместив на странице следующий скрипт.

setTimeout(function () { window.location = 'my download url'; }, 5000)

Я согласен, что мета-обновление будет приятнее, но если это не сработает, что вы делаете ...


Простой бит jQuery решил эту проблему для меня.

$(function() {
   $(window).bind('load', function() {
      $("div.downloadProject").delay(1500).append('<iframe width="0" height="0" frameborder="0" src="[YOUR FILE SRC]"></iframe>'); 
   });
});

В моем HTML я просто

<div class="downloadProject"></div>

Все, что вам нужно, это подождать полторы секунды, а затем добавить div с iframe, относящимся к файлу, который вы хотите загрузить. Когда iframe обновляется на странице, ваш браузер загружает файл. Просто как тот. : D

JavaScript, HTML, интернет-исследователь, мета-теги,
Похожие вопросы