Frage

Wie kann ich einen automatischen Download einer Datei im Internet Explorer initialisiert werden?

Zum Beispiel in der Download-Seite mag ich den Download-Link zu erscheinen und eine Nachricht: „Wenn Sie den Download nicht automatisch starten .... etc“. Der Download sollte kurz nach dem Laden der Seite beginnen.

In Firefox, das ist einfach, man muss nur einen Meta-Tag im Header enthält, <meta http-equiv="Refresh" content="n;url"> wobei n die Anzahl der Sekunden ist und url ist die Download-URL. Das funktioniert nicht in Internet Explorer. Wie mache ich diese Arbeit in Internet Explorer-Browser?

War es hilfreich?

Lösung

Source verwendet ein <iframe> Element mit dem src=""-Attribute auf die Datei verweist zum Download bereit.

<iframe width="1" height="1" frameborder="0" src="[File location]"></iframe>

(Nebeneffekt:. Keine Umleitung, kein JavaScript, ursprüngliche URL bleibt unverändert)

Andere Tipps

I hassen , wenn Websites erschweren Download so viel und Verwendung Hacks statt eines guten alten Link .

Toter einfache Version:

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

Es funktioniert! In jedem Browser!


Wenn Sie eine Datei herunterladen, die in der Regel Inline (wie ein Bild) angezeigt wird, dann hat HTML5 eine download Attribut, das Kraft-Download der Datei. Es erlaubt Ihnen auch Dateinamen zu überschreiben ( obwohl es einen besseren Weg, es zu tun ):

<a href="report-generator.php" download="result.xls">Download</a>

Version mit einer "Danke" Seite:

Wenn Sie "Danke" nach dem Download angezeigt wird, dann verwenden:

<a href="file.zip" 
   onclick="if (event.button==0) 
     setTimeout(function(){document.body.innerHTML='thanks!'},500)">
 Start automatic download!
</a>

Funktion in diesen setTimeout könnte weiter fortgeschritten sein und z.B. Download ganze Seite über AJAX (aber steuere nicht von der Seite entfernt - nicht window.location berühren oder andere Verbindungen aktivieren).

Der Punkt ist, dass Link heruntergeladen werden real, können kopiert, verschoben werden, von Download-Beschleuniger abgefangen, bekommt :visited Farbe, nicht erneut herunterladen, wenn Seite nach Neustart des Browsers geöffnet bleibt, etc.

Das ist, was ich benutze für ImageOptim

Ich hatte ein ähnliches Problem und keine der oben genannten Lösungen für mich gearbeitet. Hier ist mein Versuch (erfordert jquery):

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

Usage: Fügen Sie einfach ein Attribut data-auto-download auf den Link, der auf den Download in Frage gestellt wird:

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

Es sollte in allen Fällen.

Ich löse es vor kurzem durch das folgende Skript auf der Seite platzieren.

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

Ich bin damit einverstanden, dass ein Meta-Refresh schöner sein würde, aber wenn es nicht funktioniert, was Sie tun ...

Ein einfach bisschen jQuery dieses Problem für mich gelöst.

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

In meinem HTML, habe ich einfach haben

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

All dies tut, ist eine Sekunde lang warten und eine halbe, dann fügen Sie die div mit dem iframe auf die Datei beziehen, die Sie herunterladen möchten. Wenn die iframe auf der Seite aktualisiert wird, lädt Ihr Browser eine Datei. So einfach ist das. : D

Das ist, was ich in einigen Standorten mit (erfordert jQuery).

$(document).ready(function() {
    var downloadUrl = "your_file_url";
    setTimeout("window.location.assign('" + downloadUrl + "');", 1000);
});

Die Datei heruntergeladen wird automatisch nach 1 Sekunde.

Ich habe diese scheint zu arbeiten und ist nur einfache JS, kein Rahmen:

Your file should start downloading in a few seconds. 
If downloading doesn't start automatically
<a id="downloadLink" href="[link to your file]">click here to get your file</a>.

<script> 
    var downloadTimeout = setTimeout(function () {
        window.location = document.getElementById('downloadLink').href;
    }, 2000);
</script>

. Hinweis: Dadurch wird der Timeout im Moment die Seite geladen wird

Arbeiten auf Chrome, Firefox und IE8 und oben:

var link = document.createElement('a');
document.body.appendChild(link);
link.href = url;
link.click();

I geprüft und gefunden, es auf den Knopf klicken über das Schreiben Onclick-Ereignis arbeiten Tag oder Eingabe-Taste, um Anker

onclick='javascript:setTimeout(window.location=[File location], 1000);'

Seien Sie sicher, dass die Datei ohne ein no-cache-Header servieren! IE hat Probleme mit diesem, wenn der Benutzer versucht zunächst, den Download ohne Speichern zu „öffnen“.

Zurück zu den Wurzeln, ich benutze diese:

<meta http-equiv="refresh" content="0; url=YOURFILEURL"/>

Vielleicht nicht WC3 entsprechen, aber funktioniert auf allen Browsern perfekt, kein HTML5 / JQUERY / Javascript.

Grüße Tom:)

Ein weiteres:

var a = document.createElement('a');
a.setAttribute('href', dataUri);
a.setAttribute('download', filename);

var aj = $(a);
aj.appendTo('body');
aj[0].click();
aj.remove();

Das schien für mich zu arbeiten -. In allen Browsern

 <script type="text/javascript">
    window.onload = function(){
     document.location = 'somefile.zip';
    }
    </script>

Ich denke, das wird für Sie arbeiten. Aber Besucher sind einfach, wenn sie etwas in Sekunden bekamen, ohne mehr Zeit zu verbringen und damit werden sie auch wieder Ihre Website besuchen. <a href="file.zip" onclick="if (event.button==0) setTimeout(function(){document.body.innerHTML='thanks!'},500)"> Start automatic download! </a>

Für diejenigen, die versuchen den Download zu lösen einen Dynamic Link mit es schwierig ist es konsequent in allen Browsern zum Laufen zu bringen.

hatte ich Schwierigkeiten in IE10 Download + ein PDF und verwendet @dandavis' download Funktion (< a href = "https://github.com/rndme/download" rel = "nofollow noreferrer"> https://github.com/rndme/download ).

IE10 + braucht msSaveBlob.

Ich hoffe, dies wird alle Browser funktioniert. Sie können auch die automatische Download-Timing eingestellt.

<html>
<head>
<title>Start Auto Download file</title>
<script src="http://code.jquery.com/jquery-3.2.1.min.js"></script>
<script>
$(function() {
$('a[data-auto-download]').each(function(){
var $this = $(this);
setTimeout(function() {
window.location = $this.attr('href');
}, 2000);
});
});
</script>
</head>
<body>
<div class="wrapper">
<p>The download should start shortly. If it doesn't, click
<a data-auto-download href="auto-download.zip">here</a>.</p>
</div>
</body>
</html>

Demo hier

Nizza jquery Lösung:

jQuery('a.auto-start').get(0).click();

Sie können sogar verschiedene Dateinamen zum Download innerhalb <a> Tages gesetzt:

Your download should start shortly. If not - you can use
<a href="/attachments-31-3d4c8970.zip" download="attachments-31.zip" class="download auto-start">direct link</a>.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top