Internet explorer JSzip";“生成同步”;不使用Internet Explorer?
我想使用“JSZip”版本在单个ZIP文件中下载并保存PDF集合。3.2.1和2014年1月24日的“FileSaver”在Windows 10 64位上使用所有最新浏览器 这是在Windows 10上,使用Internet Explorer 11、Edge、Canary、Chrome、Firefox和Opera,但不使用Safari 我对InternetExplorer11上的“generateAsync”功能存在某种兼容性问题,这是我的代码唯一不使用的浏览器 我使用[Ajax]收集PDF文件,并将它们一个接一个地放在一个ZIP文件中,但在“generateAsync”中,它只在IE上失败Internet explorer JSzip";“生成同步”;不使用Internet Explorer?,internet-explorer,jszip,Internet Explorer,Jszip,我想使用“JSZip”版本在单个ZIP文件中下载并保存PDF集合。3.2.1和2014年1月24日的“FileSaver”在Windows 10 64位上使用所有最新浏览器 这是在Windows 10上,使用Internet Explorer 11、Edge、Canary、Chrome、Firefox和Opera,但不使用Safari 我对InternetExplorer11上的“generateAsync”功能存在某种兼容性问题,这是我的代码唯一不使用的浏览器 我使用[Ajax]收集PDF文件
var xhr = new XMLHttpRequest(); // Ajax
var zip = new JSZip(); // JSzip
xhr.responseType = "blob";
我使用自己的方法执行Ajax:
xhr.open("GET", filepath[i], true);
xhr.send();
中的“xhr.onreadystatechange”用于对PDF的每个Ajax调用
xhr.onreadystatechange = function()
{
if (xhr.status == 200 && xhr.readyState == 4)
{
PDFdata = xhr.response;
“filename[i]”是一个填充了PDF文件名的数组
zip.file(filename[i], PDFdata, {blob: true});
在这里之前,一切都很顺利,我已经将PDF文件名及其数据存储在ZIP文件中
}
}
PDF结束后,我直接进入保存:
zip.generateAsync({type:"blob"}).then
(
function(content)
{
saveAs(content,fn);
}
);
但问题来了:似乎“zip.generateAsync({type:“blob”})”然后“让Javascript只在IE11上工作失败”。
如果我在函数之前和内部放置[警报],则只有第一个警报响应,而第二个警报没有响应:
alert('STILL WORKING...');
zip.generateAsync({type:"blob"}).then
(
function(content)
{
alert('CANNOT REACH THIS POINT!');
saveAs(content,fn);
alert('DOES NOT EVEN KNOW IF IT SAVE WITH SUCCESS ON IE11');
}
);
“zip.generateAsync({type:“blob”})中有一些东西是IE不喜欢的
我确认,我使用过的每一款浏览器都对这一过程更加宽容,不会产生任何问题,但因为在我的工作场所总是有人发现旧IE,所以我现在唯一能做的就是建议他们使用Chrome或Edge来代替IE
我的问题是:“有没有可能让JSzip在IE11上完全工作?”或者我必须打开并调试[js]源文件,然后尝试找到一种方法?在zip文件中添加所有PDF文件后,您的文件大小是否非常大?如果是,那么您的代码可能会遇到JSZip的任何限制。我建议您使用一个或两个小文件进行测试,以检查它是否有效。参考:唉,这不是文件大小的问题,JSZip不会开始在IE上保存存档,不管里面有多少文件(即使只有一个小pdf);这是一个仅限于Internet Explorer的问题,与其他Borwser一起,我可以创建500多个文档的档案,即使这需要时间来完成。在我看来,IE Javascript今天可能有点过于原始,JSZip.generateAsync无法满足其局限性;如果是这样,剩下的唯一方法就是使用不同的浏览器或编辑JSZip源文件,并为IE兼容性制作正确的修补程序。我建议您联系JSZip支持人员,并与IE确认此限制。他们在限制页面中没有明确提及任何内容。这有助于缩小问题的范围。是的,我想我很快就会在同一篇文章中这样做。在zip文件中添加所有PDF文件后,您的文件大小是否很大?如果是,那么您的代码可能会遇到JSZip的任何限制。我建议您使用一个或两个小文件进行测试,以检查它是否有效。参考:唉,这不是文件大小的问题,JSZip不会开始在IE上保存存档,不管里面有多少文件(即使只有一个小pdf);这是一个仅限于Internet Explorer的问题,与其他Borwser一起,我可以创建500多个文档的档案,即使这需要时间来完成。在我看来,IE Javascript今天可能有点过于原始,JSZip.generateAsync无法满足其局限性;如果是这样,剩下的唯一方法就是使用不同的浏览器或编辑JSZip源文件,并为IE兼容性制作正确的修补程序。我建议您联系JSZip支持人员,并与IE确认此限制。他们在限制页面中没有明确提及任何内容。这有助于缩小问题的范围。是的,我想我很快就会在同一篇文章中做到这一点。