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

在Tampermonkey中使用jsPDF提示对象未定义的问题求助

在Tampermonkey中使用jsPDF提示对象未定义的问题求助

嘿,我帮不少人解决过Tampermonkey里用jsPDF的问题,这个报错本质上是你的脚本没有正确引入jsPDF库——Tampermonkey的脚本运行在独立沙箱里,默认不会自动加载外部库,咱们一步步来搞定:

第一步:在脚本元数据里引入jsPDF

你需要在// ==UserScript==和// ==/UserScript==之间添加@require指令,把jsPDF的CDN链接加进去,比如用稳定的cdnjs版本:

// @require      https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js

这个指令会让Tampermonkey在运行你的脚本前,先加载jsPDF库,这样脚本里就能访问到jsPDF对象了。

第二步:正确调用jsPDF对象

最新的jsPDF用的是UMD模块规范,加载后会挂载到window.jspdf上,所以你需要这样获取它:

const { jsPDF } = window.jspdf;
// 然后就可以正常创建PDF了
const doc = new jsPDF();

给你个完整的示例脚本

把你的代码改成这样试试:

// ==UserScript==
// @name         Google Play Books to PDF
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Convert Google Play Books content to PDF
// @author       You
// @match        https://play.google.com/books/*
// @require      https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // 正确获取jsPDF实例
    const { jsPDF } = window.jspdf;
    const doc = new jsPDF();

    // 先测试生成一个简单的PDF,确认没问题
    doc.text("测试内容:Google Play Books转PDF", 10, 10);
    doc.save("test-playbooks.pdf");
})();

额外注意事项

  • 检查你的@match规则,确保它完全覆盖了你操作的Google Play Books页面,比如https://play.google.com/books/*就没问题,别留半截没写完的规则。
  • 如果还是报错,打开Tampermonkey的控制台(Tampermonkey菜单里找“控制台”选项),看看是不是jsPDF加载失败了——比如CDN链接失效,或者网络问题。
  • 另外提一句,Google Play Books有内容保护机制,后续抓取书籍内容可能会遇到其他问题,但先把jsPDF的问题解决再说~

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 13:14:37