下载文件的javascript按钮

标签 javascript jquery html json download

我想通过按一个按钮来下载一个 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/

相关文章:

javascript - 在 Webix 中的数据表上使用 getContext 时,Ajax 不工作

javascript - Snap Svg 复制路径组从一张纸到另一张纸 2,适合响应式 div

jquery - 如何使图像褪色,滚动时可见并且应该重复 Action

Javascript 禁用 Bootstrap 4 中的模式弹出按钮

html - 我们如何将两个词分成单独的行?

表单提交时未调用 JavaScript 闭包函数

javascript - 如何通过单击按钮调用具有不同选择选项的不同功能

JavaScript onmousemove 和 onclick

javascript - 延迟加载由 javascript/leaflet 中的appendChild() 附加的图像

javascript - 无法使用ajax和php上传多个文件