我想用Javascript让IE6下载文件。它将使用Javascript动态创建。 Web服务器上不存在此文件。这是一个小例子:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script type="text/javascript">
function clicked() {
var xml = "<data>Just for testing</data>";
document.open("text/xml", "replace");
document.write(xml);
}
</script>
</head>
<body>
<input type="button" value="Download" onclick="clicked();" />
</body>
</html>
不是在浏览器窗口中加载xml,而是希望它能够让IE6提示用户将数据下载到哪里,这样就可以保存它而无需使用File - &gt;另存为。有什么想法吗?
答案 0 :(得分:2)
对于IE6,您应该可以在document.write()
之后使用document.execCommand()
:
document.execCommand('SaveAs',true,'file.xml');
这不是任何标准的一部分,只能在IE风格浏览器中使用。
答案 1 :(得分:0)
如果您的数据必须在客户端生成,那么您可以将其发回服务器,以便可以将其作为可下载文件返回。
答案 2 :(得分:-1)
不,这是不可能的。网络浏览器严格禁止这样做,因为只有通过JavaScript将文件保存到磁盘的能力才会非常危险,即使出现确认弹出窗口也是如此。
编辑:感谢其他答案,我发现(毫不奇怪)某些版本的IE可能会出现这种情况。