如何使用jsPDF库专门为Chrome扩展?



对于我的Chrome扩展,我想给用户一个选项来下载显示和格式化他们的数据为他们的PDF。其原理是,用户按下扩展弹出窗口上的按钮,扩展生成pdf,浏览器下载pdf。

到目前为止,我已经尝试使用jsPDF (https://github.com/parallax/jsPDF)。我按照他们的程序从CDN加载脚本标签-<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>-在我的弹出式HTML文件(popup. HTML)中,并在我的弹出式脚本(popup.js)中编写相关的导入语句import {jsPDF} from "jspdf";

当我运行扩展时,我得到两个错误。

  1. 拒绝加载脚本'https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js',因为它违反了以下内容安全策略指令:"script-src 'self'"请注意,'script-src-elem'没有被显式设置,所以'script-src'被用作备用。

在不同的帖子评论(Chrome扩展"Script-src"错误(自我学习))建议通过在清单文件中添加"content_security_policy":"script-src 'self' https://example.com; object-src 'self'"作为新密钥来解决这个问题。我尝试了这个方法,并确定将url更改为前面在script标签中提到的url,但是错误仍然存在。

  1. Uncaught SyntaxError:不能在模块外使用import语句

解决这个问题的一个建议是在另一个帖子(Chrome Extension "Script-src")错误(自学));在实现此更改后,我收到的错误是:Uncaught TypeError: Cannot destructure property 'jsPDF' of 'window。

我已经广泛地在网上寻找参考资料,解释如何使用像jsPDF这样的库与Chrome扩展。大多数都详细解释了如何在Node中使用这些库。但很少包括浏览器使用的详细信息,特别是Chrome扩展的使用情况。

将此添加到javascript文件的顶部:

const { jsPDF } = window.jspdf;

最新更新