我想通过按一个按钮来下载一个 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 ,但我没能调整成我的问题,主要是显示下载窗口。我不想在页面的某处创建另一个链接(就像在上面提到的答案中所做的那样,只是直接显示下载窗口)。
最佳答案
更新
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");
}
关于下载文件的javascript按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26414167/