js保存文件

2017-02-13  本文已影响421人  利312

以前保存文件有用openwindow,之后调用execCommand('SaveAs',true,'filename.ext');,貌似试了下,不太好用了,h5添加一个很小的改动,对a标签添加了download属性(可以为文件名);
简单实用如下: demo

<a href="javascript:void(0);" download="data.csv" id="export">点击导出csv</a>
    <button id="btn">测试点击自动生成a标签下载</button>
    <script>
    document.getElementById('export').addEventListener('click',function(e) {
      console.log(e)
      var csvData = 'a,bc,d,e,f,g';
      csvData = 'data:application/csv;charset=utf-8,' + csvData;
      this.setAttribute('href',csvData);
      this.setAttribute('target','_blank');
    },false);
    // triggerClick(document.getElementById('export'));
    // windowSave();
    function triggerClick(node){
        if (document.createEvent) {
            var evt = document.createEvent('MouseEvents');
            evt.initEvent('click', true, false);
            node.dispatchEvent(evt);
        } else if (document.createEventObject) {
            node.fireEvent('onclick') ;
        } else if (typeof node.onclick == 'function') {
            node.onclick();
        }
    }
    document.getElementById('btn').addEventListener('click',function() {
      var a = document.createElement('a');
      var csvData = 'a,bc,d,e,f,g';
      csvData = 'data:application/csv;charset=utf-8,' + csvData;
      a.setAttribute('href',csvData);
      a.setAttribute('target','_blank');
      a.setAttribute('download','test.csv');
      triggerClick(a);
    },true);
    </script>
上一篇下一篇

猜你喜欢

热点阅读