在IE9中使用JS下载PDF文件作为Blob

4

我有一个二进制大对象(blob)需要下载。在Chrome、Firefox、IE10及以上版本中可以正常工作,但问题出现在IE9上。

                    var isIE = /*@cc_on!@*/false || !!document.documentMode;  
                    var blob = new Blob([data], {type: "application/pdf"});
                    if (isIE) {
                        window.navigator.msSaveOrOpenBlob(blob, "Download.pdf");
                    } else {
                        var link = document.createElement('a');
                        link.href = window.URL.createObjectURL(blob);
                        link.download = "Download.pdf";
                        link.id = "TEST";
                        $('body').append(link);
                        document.getElementById("TEST").click();
                    }

问题出在哪里?IE对URL中的字符数有最大限制,最多只能有2.083个字符。这可能是一个关键问题。我有什么替代方案吗?我必须支持IE9...谢谢。


嗨,你最终解决了这个问题吗?我遇到了同样的问题,在IE10、11、Edge、FF、Safari和Chrome中使用msSaveBlobcreateObjectUrl可以正常工作,但在IE9中无法运行。我似乎无法解决它,也找不到解决方案。 - mtpultz
@JV3,你找到解决方案来处理IE9了吗? - quintin
1个回答

0

正如您可以在这里阅读到的那样,Blob构造函数从IE 10版本开始得到支持。您可能想要使用PDF.js


PDF.js对我没有帮助。我必须以二进制、blob或类似的形式提供文件。一个指向PDF的链接也不是解决方案。 - JV3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接