我有以下代码,可以让用户下载 csv 文件中的数据字符串。
exportData = 'data:text/csv;charset=utf-8,';
exportData += 'some csv strings';
encodedUri = encodeURI(exportData);
newWindow = window.open(encodedUri);
运行正常,客户端运行代码后会生成空白页面并开始下载 csv 文件中的数据。
因此,我尝试使用 JSON 对象来实现这一功能,例如
exportData = 'data:text/json;charset=utf-8,';
exportData += escape(JSON.stringify(jsonObject));
encodedUri = encodeURI(exportData);
newWindow = window.open(encodedUri);
但我看到的只是一个显示 JSON 数据的页面,而不是下载页面。
我做了一些研究,这个 声称可行,但我看不出我的代码有什么不同。
我的代码中是否漏掉了什么?
感谢您阅读我的问题:)
找到答案了
var obj = {a: 123, b: "4 5 6"};
var data = "text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(obj));
$('<a href="data:' + data + '" download="data.json">download JSON</a>').appendTo('#container');
似乎对我很有效。
以上代码的作者 @cowboy-ben-alman 是我的全部功劳。