You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jsPDF报错Uncaught ReferenceError: jsPDF is not defined问题求助

解决方案

报错核心原因

你使用的1.2.61版本jsPDF库,全局暴露的构造函数名为大写开头的JsPDF,你代码里写的全小写jsPDF和实际暴露的变量名不匹配,所以触发未定义报错。

调整步骤

  • 把JavaScript代码中new jsPDF()修改为new JsPDF(),和库暴露的全局变量名匹配
  • 确保jQuery、jsPDF库的引入顺序在你自己编写的业务脚本之前,避免库未加载完成就调用相关方法
  • 如果在在线编辑器中运行,需要将自定义脚本的加载模式设置为不封装到闭包中,保证createPdf函数可以被全局访问到

调整后完整可运行代码

HTML代码

<!-- 先引入依赖库,顺序不要颠倒 -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.2.61/jspdf.debug.js"></script>

<div id="content">
  <h3>Hello, this is a H3 tag</h3>
  <p>A paragraph</p>
</div>
<div id="editor"></div>
<button onclick="javascript:createPdf()" id="cmd">generate PDF</button>

JavaScript代码

function createPdf() {
  // 构造函数名改为大写开头的JsPDF,匹配1.2.61版本的暴露规则
  var doc = new JsPDF();
    
  const source = $('#content')[0];
    
  const specialElementHandlers = {
    '#editor': function(element, renderer) {
      return true
    }
  };
    
  doc.fromHTML(
    source,
    15,
    15, {
      'width': 170,
      'elementHandlers': specialElementHandlers
    }
  );
  doc.save('sample-file.pdf')
}

补充说明

如果你后续升级到2.x及以上版本的jsPDF,全局暴露的构造函数名会改为全小写的jsPDF,到时候再调整回你原来的写法即可。

内容的提问来源于stack exchange,提问作者user3731176

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 06:24:00