繁体   English   中英

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

[英]execcommand(“SaveAs”,null,“file.csv”) is not working in IE8

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中炒作

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

帮我 !!! 提前谢谢

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

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

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

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

我知道这是一个非常古老的线程,但我也遇到了这个问题。 您可以通过将以下值(取决于下载的文件的扩展名)添加到注册表来修复它。

例如.csv文件:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.csv]
"PerceivedType"="document"

@MICROSOFT:对你感到羞耻; 问题似乎仍未修补:-)

如果您可以使用PHP或.NET或Java等处理服务器端,请在http标头集中:

Content-Disposition: attachment; filename=file.csv

遗憾的是,你无法用JavaScript做到这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM