簡體   English   中英

Crossrider外部js文件未加載:PDFJS未定義

[英]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嗎?

我僅使用jsPDFCrossrider上設置了一個小型復制示例。

項目結構

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);
});

在調試擴展程序時,我得到以下結果:

輸出量

doc是包含jsPDF實例的對象 ,以后可以使用。

絕不應該提及PDF.js。 我唯一的猜測可能是您正在運行/調試仍包含對該項目引用的擴展程序版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM