FileSaver saveAs在IE11中不起作用

时间:2017-09-08 16:39:46

标签: javascript jszip filesaver.js

我目前正在使用jszip, jszip-utils, and FileSaver压缩并下载多个PDF文件。

self.createZip = function () {
    var docs = self.list.filteredItems();
    var zip = new JSZip();
    var count = 0;
    var zipFilename = "zipFilename.zip";

    docs.forEach(function (item) {
        var filename = item.formDesc() + "_" + item.id() + ".pdf";
        // loading a file and add it in a zip file
        JSZipUtils.getBinaryContent('../career/document/StreamFile/?path=' + item.fileName(), function (err, data) {
            if (err) {
                throw err; // or handle the error
            }
            zip.file(filename, data, { binary: true });
            count++;
            if (count == docs.length) {
                zip.generateAsync({ type: 'blob' }).then(function (content) {
                     try {
                             saveAs(content, zipFilename);
                        } catch (e) {
                            console.log(e);
                        }                   
                });                
            }
        });
    });

此功能目前适用于除IE11以外的所有最新浏览器。在IE11中获取所有文件,但在saveAs上挂起。

1 个答案:

答案 0 :(得分:2)

在SaveAs语句后尝试以下操作以清除缓冲区

content = null;