I want to download a JSON(or XML) file by pressing a button. In HTML I define:
<a id="exportJSON" onclick="exportJson()" class="btn"><i class="icon-download"></i> export json</a>
In JavaScipt I have following code:
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?
}
I found a very nice answer in Stackoveflow, but I fail to adjust it into my problem, mainly show the download window. I do not want to create another link somewhere in the page (like done in above mentioned answer, just directly show download window).
UPDATE
http://jsfiddle.net/2k4LtaLw/5/
Change your a to this
<a id="exportJSON" onclick="exportJson(this);" class="btn"><i class="icon-download"></i> export json</a>
The function
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");    
}
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With