Javascript 如何下载在IE9及更低版本中从jszip.js创建的zip文件,而不使用基于flash的downlodify

Javascript 如何下载在IE9及更低版本中从jszip.js创建的zip文件,而不使用基于flash的downlodify,javascript,internet-explorer-9,Javascript,Internet Explorer 9,我不想使用基于flash的downlodify来下载从jszip创建的zip文件 我可以使用ActiveX,因此我正在尝试将jszip转换为ActiveX 正在生成zip文件,但它不是有效文件。我对IE9的以下转换有什么问题 如果适用于IE9—— var content = zip.generate({ type: "base64" }); var fso = new ActiveXObject("Scripting.FileSystemObject"); var a = fso.CreateT

我不想使用基于flash的downlodify来下载从jszip创建的zip文件

我可以使用ActiveX,因此我正在尝试将jszip转换为ActiveX

正在生成zip文件,但它不是有效文件。我对IE9的以下转换有什么问题

如果适用于IE9——

var content = zip.generate({ type: "base64" });
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile("c:\Temp\test.zip", true);
a.WriteLine(content);
a.Close();
var link = document.createElement("a");
link.href = "C:\Temp\test.zip";
link.style = "visibility:hidden";
link.download = "test.zip";
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
对于其他浏览器,我很乐意使用下面的代码

var content = zip.generate({ type: "blob" });
saveAs(content, "test.zip");

需要IE9的帮助。

您可能需要查看:


在这里,用户创建一个
blob
对象,然后为该blob创建一个URL,并创建一个链接到URL的锚。

脚本。FileSystemObject
似乎处理文本文件,而不是二进制文件。您需要的是一种写入二进制文件的方法

我找到了能帮你的。我在IE9中尝试过,但我无法克服安全错误(毕竟我在磁盘上写任意文件)


另外,不要忘记将类型更改为“string”:
zip.generate({type:“string”})

Blob不受IE9new ActiveXObject(“ADODB.Stream”)的支持;IE9不支持。
var a, blob, data, downloadLink, json, url;

data  = {whatever: 1};

json = JSON.stringify(data, undefined, 2);
blob = new Blob([json], {type: "application/json"});
url = window.URL.createObjectURL(blob);

a = document.createElement("a");
a.download = "test.json";
a.href = url;
a.textContent = "Download";

document.getElementById("link").appendChild(a);