javascript - Crossrider外部js文件未加载:PDFJS is not defined

标签 javascript jquery google-chrome-extension browser-extension crossrider

下面是我在extension.js中的代码。如果您查看代码,我尝试了不同的方法将文件加载到我的扩展中。不管怎样,我总是得到

VM3051:15 Uncaught ReferenceError :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);
});

这是文件结构

enter image description here

我无法修改 manifest.json,因为该扩展对于所有浏览器都应该是唯一的,而不仅仅是 chrome。

最佳答案

我很困惑,代码中的两个 CloudFlare URL 引用了项目 jsPDF 。我假设本地 pdf.js 也会做同样的事情。

在您的代码中,您使用的是

PDFJS.getDocument();

此语法来自PDF.js这是一个与 Mozilla 完全不同的项目。

如果您坚持使用 jsPDF ,您的代码应该类似于:

var doc = new jsPDF();
doc.text(20, 20, 'Hello world.');
doc.save('Test.pdf');

或者您需要包含 PDF.js 的正确库.

在您进行编辑和发表评论后,您似乎已完全切换到 jsPDF但您仍然遇到相同的错误,其中明确提到 PDF.js .

您确定正在调试仅使用jsPDF的应用程序的正确且最新版本吗? ?

我在 Crossrider 上设置了一个小型复制示例仅使用 jsPDF .

Project structure

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

调试扩展时,我得到以下结果:

Output

doc 是一个包含 jsPDF 实例的对象我以后可以使用它。

不应提及 PDF.js任何。我唯一的猜测可能是您正在运行/调试仍包含对此项目的引用的扩展版本。

关于javascript - Crossrider外部js文件未加载:PDFJS is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38225046/

相关文章:

javascript - 为每个设备生成唯一的ID

Jquery - 视口(viewport)大小改变事件?

javascript - 在 javascript 中处理 RFC 2822 电子邮件

javascript - jQuery点击事件不点击触发

javascript - 为什么这个函数返回 NaN?

google-chrome-extension - chrome 扩展 websocket 保持事件状态

javascript - 小于和大于会产生意想不到的结果。

javascript - 为什么 JavaScript 将名为 "name"的数组解析为字符串

javascript - 文本框中包含 JavaScript 的文件 (ZK)

javascript - 如何使用 ng2-izitoast 将自定义 CSS 应用于 Toast?