Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Internet explorer JSzip";“生成同步”;不使用Internet Explorer?_Internet Explorer_Jszip - Fatal编程技术网

Internet explorer JSzip";“生成同步”;不使用Internet Explorer?

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文件

我想使用“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上失败

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确认此限制。他们在限制页面中没有明确提及任何内容。这有助于缩小问题的范围。是的,我想我很快就会在同一篇文章中做到这一点。