javascript - Wordpress 无法识别 JS 库
问题描述
我目前遇到无法在 wordpress 中导入 JS 库的问题。它是jsPDF库,在 wordpress 中,当我按下按钮时它会抛出此错误消息。ReferenceError: Can't find variable: jsPDF
我在functions.php中添加了这一行,也在本地尝试过。
wp_enqueue_script( 'jsPDF', get_stylesheet_directory_uri() . 'https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.3.0/jspdf.es.js', array( 'jquery' ),'',true );
wp_enqueue_script( 'jsPDF', get_stylesheet_directory_uri() . '/scripts/jsPDF.js', array( 'jquery' ),'',true );
我使用的所有其他自定义脚本都在工作。这是使用 jsPDF 的脚本。脚本已加载,我可以通过函数之前的 console.log 来判断。
console.log("generate PDF loaded");
function testPDF(){
console.log("testPDF-function works")
var doc = new jsPDF('p', 'pt', 'a4');
doc.fromHTML($('#a4').get(0), 20,20, {
'width':500
});
doc.save('Test.pdf');
}
解决方案
将脚本排入队列的方式存在两个问题。
- 脚本的名称应该是唯一的。
- 可能是您的错误消息的原因:您将 cdn 定位在插件文件夹中,这不是文件所在的位置。
所以你的代码应该是这样的:
wp_enqueue_script( 'jsPDF', 'https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.3.0/jspdf.es.js', array( 'jquery' ),'',true );
wp_enqueue_script( 'myJsPDF', get_stylesheet_directory_uri() . '/scripts/jsPDF.js', array( 'jquery' ),'',true );
在您的第一个 wp_enqueue_script 中,您拥有get_stylesheet_directory_uri()
,因此它正在您的主题文件夹中寻找一个文件。但它只需要是 CDN 的 URL。
在第二个 wp_enqueue_script 你给它一个唯一的名字,所以不会有冲突。也许再看看https://developer.wordpress.org/reference/functions/wp_enqueue_script/
推荐阅读
- apache-camel - 使用 Apache Camel ConsumerTemplate 从 ActiveMQ Artemis 轮询字节/大消息
- forms - TYPO3 Ext:form Checkbox Label with Link inside
- javascript - GraphQL 数据到对象
- tensorflow - 将资产加载到颤振项目中的问题
- javascript - 如何从javascript中的for-each循环返回每个值
- python - openpyxl在循环中添加图像,仅添加所有图像的最后图像
- sql - SQL - 加入更改日期
- c++ - 为什么我的打印功能不起作用?链表
- flutter - 如何在颤动中更改复选框边框颜色?默认情况下,它显示为黑色,但我希望它为灰色
- c# - 如何将 Html.EditorFor 与 List 类型一起使用