var doc = w.document;
doc.open('application/CSV','replace');
doc.charset = "utf-8";
doc.write("all,hello");
doc.close();
if(doc.execCommand("SaveAs",null,"file.csv")) {
window.alert("saved ");
}else {
window.alert("cannot be saved");
}
不在IE 8中工作
但是在IE 6中已经开始了
有什么问题?警告“无法保存”
帮助我!!!提前谢谢答案 0 :(得分:10)
这个问题似乎是由Windows XP中修复但在我的Windows 7中显然没有修补的旧错误造成的。来自http://support.microsoft.com/kb/929863:
由于 ExecCommand 功能的限制,会出现此问题。当您运行使用 ExecCommand 功能以及 SaveAs 命令的脚本时,脚本只能保存文本文件类型的文件。
果然,将文件扩展名更改为“.txt”并在IE8中神奇地观看它。
我想到的唯一解决方法是让服务器端语言创建CSV文件,并将其作为下载服务(使用Content-disposition: attachment
标题)。
答案 1 :(得分:3)
我知道这是一个非常古老的主题,但我也遇到了这个问题。 您可以通过将以下值(取决于下载的文件的扩展名)添加到注册表来修复它。
E.g。对于.csv文件:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.csv]
"PerceivedType"="document"
@MICROSOFT:对你感到羞耻;问题似乎仍未修补: - )
答案 2 :(得分:0)
如果您可以使用PHP或.NET或Java等处理服务器端,请在http标头集中设置:
Content-Disposition: attachment; filename=file.csv
遗憾的是,你无法用JavaScript做到这一点。