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 Mit den folgenden Codezeilen kann ich eine Datei in der Antwort eines Ajax-Anrufs in Firefox, Chrome, Opera herunterladen. Im IE wird das href
-Attribut download
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?
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 Content-Disposition: attachment; filename=FILENAME
IE unterstützt download
tag .
Es gibt einen hässlichen Hack, den Sie jedoch verwenden können.
Erstellen Sie eine unsichtbare iframe
:
Schreiben Sie Ihre Daten in die document
: iframe:
Verwenden Sie execCommand , um die Datei zu speichern (eigentlich , um den Dialog Speichern unter aufzurufen):
%Vor% Beachten Sie, dass execCommand
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 anch.get(0).click();
nicht von allen Browsern speziell für hidden
-Anker unterstützt wird, also können Sie stattdessen folgenden Code versuchen,
IE unterstützt weder das Navigieren zu einem Daten-URI noch das Attribut download
.
Sie können navigator.msSaveBlob
verwenden, um die Datei für IE 10+ zu speichern.
Sie können window.navigator.msSaveBlob
ü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
Tags und Links javascript html internet-explorer jquery