[英]Crossrider external js file not loading :PDFJS is not defined
以下是我在extension.js中的代碼。 如果您看一下代碼,我嘗試了多種方法將文件加載到擴展名中。 無論如何,我總是
VM3051:15未捕獲的參考錯誤:未定義PDFJS
嘗試將文件放在不同的位置。
appAPI.ready(function($) {
console.log("pdf min js loading");
appAPI.resources.includeJS('jspdf.js');
// appAPI.resources.includeJS('js/jspdf.js');
// appAPI.resources.includeRemoteJS('//cdnjs.cloudflare.com/ajax/libs/jspdf/1.2.61/jspdf.min.js');
//$.globalEval(appAPI.resources.get('//cdnjs.cloudflare.com/ajax/libs/jspdf/1.2.61/jspdf.min.js'));
console.log("done");
setTimeout(function(){
alert(window.location.href);
if(window.location.href.indexOf(".pdf") > -1) {
console.log("its a pdf");
alert("pdf");
var doc = new jsPDF();
}else{
alert($.trim($('div').find('h1,h2,h3,h4,h5,p,span').text()));
}
},6000);
});
這是文件結構
我無法修改manifest.json
因為擴展名對所有瀏覽器都應該是唯一的,而不僅僅是chrome。
我很困惑,您代碼中的兩個CloudFlare URL引用了項目jsPDF 。 我會假設本地pdf.js
也做同樣的事情。
在您的代碼中,您正在使用
PDFJS.getDocument();
該語法來自與Mozilla完全不同的項目PDF.js。
如果您堅持使用jsPDF ,則代碼應類似於:
var doc = new jsPDF();
doc.text(20, 20, 'Hello world.');
doc.save('Test.pdf');
否則,您需要為PDF.js包括正確的庫。
在完成編輯和注釋之后,似乎您已經完全切換到jsPDF,但是您仍然遇到同樣的錯誤,其中明確提到了PDF.js。
您確定要調試的應用程序的正確和最新版本僅使用jsPDF嗎?
我僅使用jsPDF在Crossrider上設置了一個小型復制示例。
extension.js代碼如下:
appAPI.ready(function($) {
console.log("pdf min js loading");
appAPI.resources.includeJS('jspdf.js');
console.log("done");
var doc = new jsPDF();
console.log(doc);
});
在調試擴展程序時,我得到以下結果:
絕不應該提及PDF.js。 我唯一的猜測可能是您正在運行/調試仍包含對該項目引用的擴展程序版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.