Wie fügen Sie dem Dateinamen und Datei-Erweiterung zum Fenster.open-Methode, dass die Exporte ein JSON-array in eine CSV-string dann in eine Datei in javascript?
Ich habe den folgenden code, die gefunden wurde, auf die folgende Frage:
https://stackoverflow.com/a/4130939/1055971
function DownloadJSON2CSV(objArray)
{
var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
var str = '';
for (var i = 0; i < array.length; i++) {
var line = '';
for (var index in array[i]) {
line += array[i][index] + ',';
}
line.slice(0,line.Length-1);
str += line + '\r\n';
}
window.open( "data:text/csv;charset=utf-8," + escape(str))
}
Dieser code funktioniert sehr gut. Es lädt die Datei herunter und speichert es, aber das Problem ist es ist nicht ein Weg, um fügen Sie einen benutzerdefinierten Titel für die Datei und auch die Datei speichert mit keine Erweiterung. Zum Beispiel, wenn die speichern-Funktion aufgerufen wird, wird der name der Datei ist "download" standardmäßig mit keine Dateierweiterung. Wenn ich eine Erweiterung durch die windows-Datei-system (wie .csv-Datei) und die Datei erneut öffnen, werden alle Daten perfekt erhalten.
Ich bin der Hoffnung, um herauszufinden, eine Möglichkeit, die Voreinstellung der Datei-Namen und Datei-geben Sie vor dem download stattfindet. Irgendwelche Ideen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
erstellen unsichtbare element link( anchor-tag), und initialisieren Sie download Eigenschaft von eine - element mit den gewünschten Dateinamen an und fügen Sie im neuen Fenster und öffnen, und rufen Sie programmgesteuert click-Ereignis erstellt eine element.
JS:
CSS:
HTML:
Scheint es nicht zu sein, ein guter Weg, um Gewährleistung der cross-browser-Verhalten