execcommand("SaveAs",null,"file.csv")在IE8中不起作用

Anb*_*nbu 9 javascript

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");
}
Run Code Online (Sandbox Code Playgroud)

不在IE 8中工作

但在IE 6中炒作

问题是什么 ?它警告"无法保存"

帮我 !!!提前谢谢

And*_*y E 10

问题似乎是由Windows XP中修复的旧错误引起的,但在Windows 7中显然没有修补.来自http://support.microsoft.com/kb/929863:

出现此问题是由于ExecCommand函数的限制.当您运行使用ExecCommand函数和SaveAs命令的脚本时,脚本只能保存文本文件类型的文件.

果然,将文件扩展名更改为".txt"并在IE8中神奇地观看它.

想到的唯一解决方法是使用服务器端语言创建CSV文件,并将其作为下载(使用Content-disposition: attachment标题)提供.