Wordpress 无法识别 JS 库
Wordpress does not recognize JS library
我目前遇到无法在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/
我目前遇到无法在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/