对于我的Chrome扩展,我想给用户一个选项,让他们下载一个PDF来显示和格式化他们的数据,这个想法是用户按下扩展弹出窗口上的一个按钮,扩展生成PDF,浏览器下载PDF。
到目前为止,我尝试使用jsPDF(https://github.com/parallax/jsPDF),但收效甚微。我按照他们的过程从CDN加载到我的弹出HTML文件(popup.html)中的脚本标记<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
中,并在我的弹出脚本(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 Extension "Script-src" error (self-learning))中的评论建议通过在manifest文件中添加"content_security_policy":"script-src 'self' https://example.com; object-src 'self'"
作为一个新键来解决这个问题,我尝试了这个方法,并确定将url更改为之前提到的script标记中的那个,但错误仍然存在。
1.* 未捕获的语法错误:不能在模块外使用import语句 *
在另一篇文章(Chrome Extension "Script-src" error (self-learning))中提出了一个解决这个问题的建议;在实现此更改后,我收到的错误是:* 未捕获的类型错误:无法析构"window. jspdf"的属性"jsPDF",因为它未定义。*
我在网上广泛查找了解释如何在Chrome扩展中使用jsPDF等库的参考资料。大多数参考资料都详细解释了如何在Node中使用此类库。但很少有参考资料包含浏览器使用细节,尤其是Chrome扩展的使用细节。
1条答案
按热度按时间4si2a6ki1#
添加这个到你的javascript文件的顶部:
常量{ jsPDF } =窗口.jspdf;