js导出数据,浏览器(内核必须支持<a> download 属性或Blob对象创建)兼容

来源:互联网 发布:网络婚姻网 编辑:程序博客网 时间:2024/06/05 02:48

浏览器内核须支持(”a“标签的 download 属性)或支持Blob对象创建,否则不可使用

function radarDLBut(filename) {    //tdstr用于装载处理后的数据,不同的数据源处理方式可能不同;","用于列的分割,"\n"用于跳转到下一行    var table = document.all.Data;//Data即<table>的ID    var hang = table.rows.length;//取数据源行数    var lie = table.rows[0].cells.length;//取数据源列数    var tdstr = "";for (i = 0; i < hang; ++i) {    for (j = 0; j < lie; ++j) {        tdstr += table.rows[i].cells[j].innerText + ",";    }    tdstr = tdstr.substring(0, tdstr.length - 1) + "\n";    }    var csvContent = "data:text/csv;charset=utf-8,\ufeff";//\ufeff去除中文数据乱码    if (window.navigator.msSaveOrOpenBlob) {        csvContent = "\ufeff";    }    csvContent += tdstr;    if (window.navigator.msSaveOrOpenBlob) {        // if browser is IE        var blob = new Blob([decodeURIComponent(encodeURI(csvContent))], {            type: "text/csv;charset=utf-8;"        });        navigator.msSaveBlob(blob, filename);//filename文件名包括扩展名,下载路径为浏览器默认路径    } else {        var encodedUri = encodeURI(csvContent);//encodeURI识别转义符        var link = document.createElement("a");        link.setAttribute("href", encodedUri);        link.setAttribute("download", filename);        document.body.appendChild(link);        link.click();    }};

本文参考:
http://blog.csdn.net/oscar999/article/details/16342699
http://blog.csdn.net/yuan882696yan/article/details/44489025

阅读全文
0 0
原创粉丝点击