Error : ArrayBuffer is undefined

Error : ArrayBuffer is undefined

我正在使用 html2canvas 和 jsPDF 将 div 导出为 PDF,正在使用 Google Chrome、Firefox 和 IE 11,但在 IE 9 和 10 版本中给出错误:ArrayBuffer 未定义。

代码:

function exportPDF(relatorio){

 var form = $(relatorio);

 var cache_width = form.width();

 var a4  =[ 595.28,  841.89];  

 getCanvas(form).then(function(canvas){

     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('relatorioOrcadoRealizado.pdf');
     form.width(cache_width);

 });
}

function getCanvas(form){
 //CONVERT for canvas
 return html2canvas(form,{
     imageTimeout:2000,
     removeContainer:true
    }); 
}

看看这个link: http://caniuse.com/#feat=typedarrays

它将告诉您 ArrayBuffer 在 Internet Explorer 9 中不受支持,并且仅在 Internet Explorer 10 中受警告支持。这意味着您必须修改代码以使用其他内容(例如此处的 polyfill:https://github.com/inexorabletash/polyfill/blob/master/typedarray.js) 或者你将不得不忍受你的代码在 IE 9 中不工作 and/or 10.