我想通过按下按钮下载JSON(或XML)文件。在HTML中我定义:
<a id="exportJSON" onclick="exportJson()" class="btn"><i class="icon-download"></i> export json</a>
在JavaScipt中,我有以下代码:
function exportJson() {
var obj = {a: 123, b: "4 5 6"};
var data = "text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(obj));
// what to return in order to show download window?
}
我找到了very nice answer in Stackoveflow,但我无法将其调整为我的问题,主要是显示下载窗口。我不想在页面的某个地方创建另一个链接(如上面提到的答案,只是直接显示下载窗口)。
答案 0 :(得分:6)
<强>更新强>
http://jsfiddle.net/2k4LtaLw/5/
将您的a更改为此
<a id="exportJSON" onclick="exportJson(this);" class="btn"><i class="icon-download"></i> export json</a>
功能
function exportJson(el) {
var obj = {
a: 123,
b: "4 5 6"
};
var data = "text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(obj));
// what to return in order to show download window?
el.setAttribute("href", "data:"+data);
el.setAttribute("download", "data.json");
}