javascript 未捕获引用错误:jsPDF未定义

qrjkbowd  于 2023-05-21  发布在  Java
关注(0)|答案(5)|浏览(271)

这是我的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>

我在控制台上得到这个错误:
“未捕获的引用错误:jsPDF未定义”
我不知道我在这里做错了什么,我甚至在脚本标签中添加了jsPDF...

ego6inou

ego6inou1#

使用这个:

window.jsPDF = window.jspdf.jsPDF;
rseugnpd

rseugnpd2#

首先,你的HTML是无效的。检查W3S
把你的链接到jspdf<head>标签,你可以这样做,甚至在<body>标签。
jspdf脚本替换为最新的脚本:

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

hmae6n7t3#

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

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

在head标签中添加此脚本

kwvwclae

kwvwclae4#

@ https://stackoverflow.com/users/4833506/nikkorian
window.jsPDF = window.jspdf.jsPDF;
这种方法将jsPDF对象(窗口上的jspdf对象的属性)分配给窗口上的jsPDF属性。其效果是您可以直接使用jsPDF,而不必使用jspdf. jsPDF。
但是,需要注意的是,虽然这种方法可以在某些情况下工作,但对于更大、更复杂的应用程序或使用模块时,它可能并不理想。使用全局变量可能会导致命名冲突或变量范围问题。
在大型应用程序或基于模块的环境中,最好将jsPDF导入到使用它的每个模块中。但是,考虑到应用程序的上下文和简单性,您所采用的方法是非常好的,并且可以快速解决问题。

vof42yt1

vof42yt15#

使用这个:

window.jsPDF = require('jspdf');

而不是这样:

import jsPDF from 'jspdf';

相关问题