2016-08-23 3 views
1

Ich habe einige große JSON-Konfigurationen und möchte Benutzern erlauben, sie zu exportieren. Das Problem ist JS prompt kann keine vollständigen Daten zurückgeben, also entschied ich mich, windows.open zu verwenden und zu schreiben. Aber "schreiben" nur "essen" HTML in JSON-Werten. Diese Antwort https://stackoverflow.com/a/22055706 hat mir sehr geholfen.document.write und JSON-Ausgabe

var data = Store.export(); 
var url = 'data:text/json;charset=utf8,' + encodeURIComponent(data); 
window.open(url, '_blank'); 
window.focus(); 

Aber wenn ich versuche, wirklich große und lange json alles friert zu exportieren ... Wie kann ich es ändern leere URL und unmodifizierten json als Text zu benutzen?

UPD Meine Abhilfe

var myWindow = window.open("", "JSON Settings", '_blank'); 
myWindow.document.write('<textarea>' + escapeHTML(Store.export()) + '</textarea>'); 
myWindow.focus(); 
+0

Könnten Sie eine Geige machen für uns zu testen, um? – TrojanMorse

+0

Haben Sie versucht, etwas wie http://stackoverflow.com/questions/3665115/create-a-file-in-memory-for-user-to-download-not-thrut-server (zweite Antwort)? – yuriy636

Antwort

1

Sie ein mehrzeiliges Textfeld enthalten könnte, in dem Sie die Daten legen würde.

Dies gibt es einen Platz zu gehen, anstatt nur in den HTML-Code injiziert werden.

Der Benutzer würde dann die Daten kopieren und in ihre eigene .json Datei einfügen.

+0

Ich habe das gemacht, aber große Datenmengen haben dazu geführt, dass mein Browser ein paar Mal hängen bleibt, also habe ich die Daten als Download gesendet und bessere Ergebnisse erzielt. –

+0

Ja. es sieht gut aus, und tat, was ich will mit html, aber diese Art von Daten - " Nachrichten " umgewandelt in "Nachrichten" und brach JSON ... – user1128677

0

Wenn Sie versuchen, die Daten zu exportieren, haben Sie irgendwelche Anforderungen, die dem Benutzer das Herunterladen der Daten verbieten?

Diese lib für mich kommen in praktisch mal mehrere:

https://github.com/eligrey/FileSaver.js

+0

Ich dachte darüber nach, aber nicht wollen externe Bibliothek: c – user1128677

Verwandte Themen