【问题标题】:IE9 - Error in function : 'ArrayBuffer' is undefined ReferenceError: 'ArrayBuffer' is undefinedIE9 - 函数错误:“ArrayBuffer”未定义 ReferenceError:“ArrayBuffer”未定义
【发布时间】:2014-11-24 00:49:32
【问题描述】:

我创建了一个下载pdf 的应用程序。 pdf 基于 html 表。 该应用程序在所有浏览器中都运行良好,但是当我在 IE9 中运行时,我得到了Error in function : 'ArrayBuffer' is undefined ReferenceError: 'ArrayBuffer' is undefined。由于 IE9 是基于 HTML5 的浏览器,我猜 jspdf 应该可以工作。

Working Demo

function demoFromHTML() {
    var pdf = new jsPDF('p', 'pt', 'letter');
    pdf.cellInitialize();
    pdf.setFontSize(10);
    $.each($('#customers tr'), function (i, row) {
        if ($(row).text().trim().length !== 0) {
            $.each($(row).find("td, th"), function (j, cell) {
                var txt = $(cell).text().trim() || " ";
                var width = (j == 4) ? 40 : 70;
                if (j == 7) {
                    width = 120;
                }
                if(i==0)
                {
                    pdf.setFontStyle('bold');
                }
                else
                {
                    pdf.setFontStyle('normal');
                }   
                    pdf.cell(10, 10, width, 18, txt, i);             
            });
        }
    });

    pdf.save('sample-file.pdf');
}

谁能告诉我一些解决方法

【问题讨论】:

  • "Browser Compatibility jsPDF 可以在 IE6+*, Firefox 3+, Chrome, Safari 3+, Opera 中运行。对于 IE9 及以下,我们懒加载 Flash名为 Downloadify 的 shim 可以下载文件。(当前版本未启用 IE6-9 shim)。" -jsPDF page
  • 那么我需要做什么
  • 我不知道,也许启用 shim?
  • 如何为 IE9 启用 shim

标签: javascript jquery html internet-explorer-9 jspdf


【解决方案1】:

使用以下代码启用下载:

<!doctype>
<html>
<head>
    <title>jsPDF</title>
    <link rel="stylesheet" type="text/css" href="css/main.css">
    <script type="text/javascript" src="../libs/base64.js"></script>
    <script type="text/javascript" src="../jspdf.js"></script>
    <script type="text/javascript" src="../libs/downloadify/js/swfobject.js"></script>
    <script type="text/javascript" src="../libs/downloadify/js/downloadify.min.js"></script>    
</head>

<body onload="load()">
<h1>jsPDF Downloadify Example</h1>

<p>This is an example of jsPDF using <a href="http://www.downloadify.info/">Downloadify</a>. This works in all major browsers.</p>

<p id="downloadify">
    You must have Flash 10 installed to download this file.
</p>

<script type="text/javascript">
    function load(){
        Downloadify.create('downloadify',{
            filename: 'Example.pdf',
            data: function(){ 
                var doc = new jsPDF();
                doc.text(20, 20, 'PDF Generation using client-side Javascript');
                doc.addPage();
                doc.text(20, 20, 'Do you like that?');
                return doc.output();
            },
            onComplete: function(){ alert('Your File Has Been Saved!'); },
            onCancel: function(){ alert('You have cancelled the saving of this file.'); },
            onError: function(){ alert('You must put something in the File Contents or there will be nothing to save!'); },
            swf: '../libs/downloadify/media/downloadify.swf',
            downloadImage: '../libs/downloadify/images/download.png',
            width: 100,
            height: 30,
            transparent: true,
            append: false
        });
    }
</script>   
</body>
</html>

使用以下代码懒加载Downloadify:

<script id="jspdf" src="../jspdf.js"></script>

<script id="lazy">
var jspdfScript = document.getElementByid('jspdf');
var swfobjectScript = document.createElement('script');
var downloadifyScript = document.createElement('script');

swfobjectScript.src = "../libs/downloadify/js/swfobject.js";
downloadifyScript.src = "../libs/downloadify/media/downloadify.swf";

if (window.ActiveXObject)
  {
  document.documentElement.insertBefore(jspdfScript, swfobjectScript);

  swfobjectScript.onload = function () {
  document.documentElement.insertBefore(jspdfScript, downloadifyScript);
  };

  downloadifyScript.onload = function () {
    load();
  }
</script>

【讨论】:

  • 任何人在谷歌上搜索,您可以在下载 jsPDF 时在 libs/Downloadify/ 找到 Downloadify
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-04
  • 1970-01-01
  • 1970-01-01
  • 2017-11-14
  • 1970-01-01
相关资源
最近更新 更多