HTML2Canvas无法在Safari浏览器中呈现图像

时间:2018-11-19 12:32:58

标签: javascript jquery safari jspdf html2canvas

我阅读了其他答案,它们告诉我们,当我们将图像托管在服务器中时,图像将呈现。就我而言,我的图像是动态来自服务器的。它可以在Chrome和Firefox中完美运行,但不能在Safari中完美运行。这是我使用JsPDF和HTML2Canvas的代码:

$(document).on('click', '#download_pdf', function(){
  $('.hide-pdf').hide();
  html2canvas(document.body,{
    useCORS: true,
    logging:true,
    onrendered:function(canvas){
      $('.loading-wrap').hide();
      var img=canvas.toDataURL("image/png");
      var imgData = canvas.toDataURL('image/png');
      var imgWidth = 210;
      var pageHeight = 295;
      var imgHeight = canvas.height * imgWidth / canvas.width;
      var heightLeft = imgHeight;

      var doc = new jsPDF('p', 'mm');
      var position = 0;

      doc.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight);
      heightLeft -= pageHeight;

      while (heightLeft >= 0) {
        position = heightLeft - imgHeight;
        doc.addPage();
        doc.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight);
        heightLeft -= pageHeight;
      }
      doc.save('bulldata.pdf');
    }
  }
  );
  $('.hide-pdf').show();
}
);

任何人都可以帮助我检查为什么图像不能仅在Safari浏览器中呈现

1 个答案:

答案 0 :(得分:0)

我也在处理相同的问题。我认为问题可能是由CORS选项引起的。基本上,即使使用Safari也可以在没有CORS选项的情况下很好地工作。

https://helperbyte.com/questions/277332/as-safari-to-make-it-work-with-cors-html2canvas-correctly