js 数据导出为txt文件


  今天要做一个数据下载到本地保存为txt文件,一开始网上找了很多例子,大部分都是用的ActiveXObject对象,但是粘贴到本地测试就报错,后来才发现这个只兼容IE。后来又搜索了半天才得到解决,现在我就把解决办法给大家分享一下。

  首先HTML结构使用最简单的结构:

       

       

  然后JS:  

       document.querySelector('#save').addEventListener('click', saveFile);

       function fakeClick(obj) { 
         var ev = document.createEvent("MouseEvents");
    ev.initMouseEvent("click", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
    obj.dispatchEvent(ev);
  }

  function exportRaw(name, data) {
    var urlObject = window.URL || window.webkitURL || window;
    var export_blob = new Blob([data]);
    var save_link = document.createElementNS("http://www.w3.org/1999/xhtml", "a")
    save_link.href = urlObject.createObjectURL(export_blob);
    save_link.download = name;
    fakeClick(save_link);
  }

  function saveFile(){
    var inValue  = document.querySelector('#text').value;
    exportRaw('test.txt', inValue);
  }

  这样就可以在点击保存后将textarea中输入的内容本地化为txt文件。

  2018-10-12 11:56  武汉。