Anchor's Download Property is not working on some pages (Gmail)?

后端 未结 2 1985
傲寒
傲寒 2021-01-05 05:22

I want to insert this HTML element in some pages:



        
相关标签:
2条回答
  • 2021-01-05 06:03

    For those who are interested, I solved it using Javascript/Ajax, here's the solution:

    Here's the function:

    var downloadDataURI = function($, options) {
        if(!options)
            return;
        $.isPlainObject(options) || (options = {data: options});
        if(!$.browser.webkit) 
            window.location = options.data;
        options.filename || (options.filename = "download." + options.data.split(",")[0].split(";")[0].substring(5).split("/")[1]);
        options.url || (options.url = "http://download-data-uri.appspot.com/");
        $('<form method="post" action="'+options.url+'" style="display:none"><input type="hidden" name="filename" value="'+options.filename+'"/><input type="hidden" name="data" value="'+options.data+'"/></form>').submit().remove();
    }
    

    And here's how to call it:

    downloadDataURI($, {filename: "test.csv",data:"data:application/csv;charset=utf-8,Col1%2CCol2%2CCol3%0AVal1%2CVal2%2CVal3%0AVal11%2CVal22%2CVal33%0AVal111%2CVal222%2CVal333"});
    
    0 讨论(0)
  • 2021-01-05 06:03

    In Chrome with JQuery, I try this approach:

    var dataUri = "data:application/csv;charset=utf-8,Col1%2CCol2%2CCol3%0AVal1%2CVal2%2CVal3%0AVal11%2CVal22%2CVal33%0AVal111%2CVal222%2CVal333"
    var filename = "somedata.csv"
    
    $("<a download='" + filename + "' href='" + dataUri + "'></a>")[0].click();
    

    I created a temp link and trigger click event on it. but not sure if other browsers work or not.

    0 讨论(0)
提交回复
热议问题