document.write和JSON输出

时间:2016-08-23 12:10:30

标签: javascript json

我有一些大的json配置,并希望允许用户导出它们。问题是JS prompt无法返回完整的数据,所以我决定使用windows.open并编写。但是“写”只是在json值中“吃掉”html。这个答案https://stackoverflow.com/a/22055706帮了很多忙。

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

但是当我尝试导出真正大而长的json时,一切都冻结了...... 如何修改它以使用空白URL和未修改的json作为文本?

UPD 我的解决方法

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

2 个答案:

答案 0 :(得分:1)

您可以包含一个多行文本字段,您可以在其中放置数据。

这为它提供了一个空间,而不仅仅是注入HTML。

然后,用户将数据复制并粘贴到他们自己的.json文件中。

答案 1 :(得分:0)

如果您尝试导出数据,是否有任何要求禁止用户下载数据?

这个lib已经好几次派上用场了:

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