Mit den folgenden Codezeilen kann ich eine Datei in der Antwort eines Ajax-Anrufs in Firefox, Chrome, Opera herunterladen. Im IE wird das %code% -Attribut %code% nicht unterstützt. Daher funktioniert das unten in IE nicht.
HTML:
%Vor%JavaScript:
%Vor%Welche Optionen hätte ich, um das gleiche Verhalten im IE zu erreichen?
Es gibt einen hässlichen Hack, den Sie jedoch verwenden können.
Erstellen Sie eine unsichtbare %code% :
%Vor%Schreiben Sie Ihre Daten in die %code% : iframe:
%Vor%Verwenden Sie execCommand , um die Datei zu speichern (eigentlich , um den Dialog Speichern unter aufzurufen):
%Vor%Beachten Sie, dass %code% in IE11 nicht funktioniert. Ich weiß, dass es nahezu unmöglich ist, den Browser einwandfrei zu erkennen. Sie können dies jedoch als Sicherungsroutine versuchen, wenn das Speichern der Datei in Ihrem Code fehlschlägt.
Ich denke, das hängt damit zusammen, dass %code% nicht von allen Browsern speziell für %code% -Anker unterstützt wird, also können Sie stattdessen folgenden Code versuchen,
%Vor% IE unterstützt weder das Navigieren zu einem Daten-URI noch das Attribut %code% .
Sie können %code% verwenden, um die Datei für IE 10+ zu speichern.
Sie können %code% überprüfen und IE-spezifischen Code schreiben, andernfalls den vorhandenen Code verwenden, um die Datei zu speichern.
Sie können folgenden Link für weitere Details überprüfen:
Dateien lokal speichern mit Blob und msSaveBlob
Kann ich Punkte verwenden, dass das Download-Attribut in Chrome und Firefox unterstützt wird?
Befehl Speichern als mit execCommand kann den Trick machen, indem der Inhalt des Elements herunterladbar gemacht wird. p>
Mit msSaveBlob können Sie Blob oder Datei speichern durch Senden dieser Header:
%Vor%Überprüfen Sie Dateien lokal mit Blob und msSaveBlob speichern
Wenn Sie all das nicht selbst implementieren möchten, können Sie FileSaver.js mit einer netten Bibliothek speichern generierte Dateien auf Client-Seite. Es unterstützt Firefox, Chrome, Chrome für Android, IE 10+, Opera und Safari. Für IE & lt; 10 gibt es eine Verzweigung der Bibliothek, die saveTextAs hinzufügt, um Textdateien zu speichern (.htm, .html , .txt)
Ein serverseitiges Skript, das Dateinamen, Daten, Meme-Typ erhält und dann die Datei mit dem Header %code%
sendet