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

WordPress引入jsPDF后调用失败,报jsPDF未定义错误求助

排查WordPress中jsPDF未加载的问题

问题原因

  1. UMD版本变量暴露规则差异:你引入的是jsPDF的UMD(通用模块定义)版本(jspdf.umd.min.js),该版本不会直接在全局作用域暴露jsPDF变量,而是将其封装在window.jspdf对象中,导致代码检测typeof jsPDF返回undefined。
  2. 脚本加载异常(可选排查点):若CDN链接不可达或被拦截,jspdf.umd.min.js会加载失败,同样会触发该错误。

解决方法

方法1:适配UMD版本的调用逻辑

修改my-plugin-pro.js中的代码,调整变量检测和实例化方式:

(function($) {
    $(document).on('click', '.my_plugin_export_pdf_btn', function(e) {
        e.preventDefault();
        // 检测UMD版本导出的对象
        if (typeof window.jspdf !== 'undefined' && typeof window.jspdf.jsPDF !== 'undefined') {
            const doc = new window.jspdf.jsPDF();
            doc.text('Hello, this is a test PDF created using jsPDF!', 10, 10);
            doc.save('test.pdf');
        } else {
            console.error('jsPDF is not available!');
        }
    }); 
})(jQuery);

方法2:改用非UMD版本的jsPDF

将PHP中的jsPDF引入链接替换为非UMD版本(jspdf.min.js),该版本会直接暴露全局jsPDF变量,无需修改原有JS代码:

wp_enqueue_script('jsPDF','https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.min.js', array(), '2.5.1', false);

额外排查步骤

  • 打开浏览器开发者工具的「Network」标签,刷新页面后查看jsPDF文件的加载状态,确保返回状态码为200。
  • 若CDN加载失败,可将jsPDF文件下载到插件的assets/js目录,改用本地路径引入:
wp_enqueue_script('jsPDF', plugins_url('assets/js/jspdf.min.js', dirname(__FILE__)), array(), '2.5.1', false);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 01:05:12