js把数据保存为文本文件
将用户在ie上选择的数据另存为一定格式的文件,如.txt、.xls等。
方法1,将请求发送给服务端,有服务端处理完成后作为响应发送给浏览器下载:
方法2,利用javascript 将浏览器上数据组织好,利用浏览器的另存为功能来实现:
注意,SaveAs的方式虽然如上述代码设置了charset,但是默认浏览器仍然默认保存为unicode编码。
要点:怎么指定保存格式为GB2312?
可以利用try catch是浏览器对编码设置生效:
var w = window.open("about:blank", "导出", "height=0,width=0,toolbar=no,menubar=no,scrollbars=no,resizable=on,location=no,status=no");
var dt = new Date();w.document.write(exportData);
try{
w.document.charset = "gb2312";
}
catch(err){ }
w.document.execCommand("SaveAs", false, dt.getFullYear() + "-" + (dt.getMonth()+1) + "-" + dt.getDate() + "-" + dt.getTime()+".txt");
w.close();
注意,去掉try catch会产生什么结果?
试验结果是窗口打开了,但是另存为的对话框没有出现。