使用 FileSaver 在 IE11 上保存文件

Saving file on IE11 with FileSaver

我正在使用 FileSaver 库 (https://github.com/eligrey/FileSaver.js),但在 IE11 上无法运行,而在其他浏览器上我没有问题。

代码是这样的:

var file = new File(["content"], "sample.xml", { type: "application/xml;charset=utf-8" });
saveAs(file);

我在执行第一条指令(新)时遇到此错误:

"the object does not accept this action"

git 集线器上有一个未解决的问题,但实际上没有解决方案,我正在寻找一个应该适用于 IE11 的解决方法,如下所示:

try {
                var file = new File([msg.d], "test.xml", { type: "application/xml;charset=utf-8" });
                saveAs(file);
     } catch (err) {
                // Code that works on IE11 ....
     }

如有任何帮助,我们将不胜感激。

我找到了适用于 IE11 的解决方法。

这是代码:

try {
            var file = new File(['content'], fileName, { type: 'application/xml;charset=utf-8' });
            saveAs(file);
} catch (err) {
            var textFileAsBlob = new Blob(['content'], { type: 'application/xml' });
            window.navigator.msSaveBlob(textFileAsBlob, fileName);
}

我希望这会对某些人有所帮助,使用 IE11 会为这样的小事消耗时间。

http://caniuse.com/#search=file [2] 部分浏览器不支持File构造函数

获取 File 实例的唯一方法是通过 input[type=file]

而不是围绕 try/catch 为什么不这样做:

var blob = new Blob(['content'], { type: 'application/xml' });
saveAs(blob, fileName);