【问题标题】:Uncaught ReferenceError: jsPDF is not defined未捕获的 ReferenceError:未定义 jsPDF
【发布时间】:2017-09-06 02:16:06
【问题描述】:

这是我的 HTML 代码,我试图将 div abc 中输出的任何内容转换为可下载的 pdf 文件。

<!-- Page Heading -->
<div class="row">
    <div class="col-lg-12">
        <h1 class="page-header">
            Reports
        </h1>
        <ol class="breadcrumb">
            <li>
                <i class="fa fa-dashboard"></i>  <a href="dashboard">Dashboard</a>
            </li>
            <li class="active">
                <i class="fa fa-edit"></i> Reports
            </li>

        </ol>
        <body>
          <div id="abc">
</div>
<div id="editor"></div>
<button id="cmd">Download Survey Report</button>
        <div id="abc">

        </div>
        </body>

        <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.3/jspdf.min.js"></script>
        <script>

                var doc = new jsPDF();
                var specialElementHandlers = {
                  '#editor': function (element, renderer) {
                return true;
            }
        };

        $('#cmd').click(function () {
            doc.fromHTML($('#abc').html(), 15, 15, {
                'width': 170,
                    'elementHandlers': specialElementHandlers
            });
            doc.save('SurveyReport.pdf');
        });
        </script>


        <script>
        firebase.auth().onAuthStateChanged(function(user){
          if(user){
            var userID = user.uid;
            RetrieveSurvey(userID,1,PrintSurvey(document.getElementById("abc")));
          }
        })
        </script>

    </div>
</div>

我在控制台上收到此错误:

"Uncaught ReferenceError: jsPDF is not defined"

我不确定我在这里做错了什么,我什至在脚本标签中添加了jsPDF...

【问题讨论】:

  • 把你的脚本放在&lt;body&gt;标签里面再试一次。
  • 为什么你有&lt;body&gt;&lt;/body&gt;标签一个&lt;div&gt;ids 也应该是唯一的,你不能有2个id="abc"标签。

标签: javascript html jspdf


【解决方案1】:

使用这个:

window.jsPDF = window.jspdf.jsPDF;

【讨论】:

  • 这就是我要找的东西!
  • 非常感谢!
  • 成功了,谢谢!
  • 工作正常。谢谢
  • 工作正常。但是,为了让第一次使用它的人清楚……我在脚本文件的顶部使用了这段代码。不确定它是否适用于 html 文件中的脚本标签。
【解决方案2】:

首先,您的 HTML 无效。检查W3S

jspdf的链接放在&lt;head&gt;标签内,你甚至可以在&lt;body&gt;标签内进行操作。

用最新的替换你的jspdf 脚本:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.4/jspdf.min.js"></script>

【讨论】:

    【解决方案3】:

    https://github.com/matb/jsPDF 中所述使用

    &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.debug.js"&gt;&lt;/script&gt;

    在 head 标签中添加这个脚本

    【讨论】:

      【解决方案4】:

      使用这个:

      window.jsPDF = require('jspdf');
      

      而不是这个:

      import jsPDF from 'jspdf';
      

      【讨论】:

      • 欢迎来到 SO!感谢您的贡献。但是,我会编辑您的答案以添加更多解释。如需更多帮助,请参阅how to answer
      猜你喜欢
      • 1970-01-01
      • 2023-01-23
      • 1970-01-01
      • 2016-11-03
      • 2011-01-05
      • 2016-01-02
      • 2013-10-06
      • 2016-12-17
      相关资源
      最近更新 更多