繁体   English   中英

如何在Firefox插件中使用pdf.js库?

[英]How to use pdf.js library in a firefox addon?

我正在制作Firefox附加扩展程序,以便在Google的翻译页面中insert pdf文档,并且我想使用pdf.js 不想使用embed或iframe标签来做,我想做自己的pdf查看器。 我正在尝试在Firefox加载项中使用pdj.js库,但是它不起作用。 我已经尝试过将其添加到manifest.json

    "content_scripts": [ 
    {
      "matches":["*://translate.google.com/*"],
      "js": ["script.js","pdf.js"]
    }
   [enter image description here][1] ]

但是当我这样做时:

pdfjsLib.getDocument(pdf_url); 

它不起作用,脚本停止工作。

我确实尝试在页面的顶部添加脚本

var pdf_js = document.createElement('script');
pdf_js.src = 'https://mozilla.github.io/pdf.js/build/pdf.js';
document.getElementsByTagName('head')[0].appendChild(pdf_js);

而且也不起作用。 但是,当我从Firefox的调试控制台中使用pdfjsLib时 ,它可以工作,但是从我用于插件pdfjsLib.getDocument函数的脚本中,它却无法工作。

使用jQuery时,我遇到了类似的问题,该库在脚本中不起作用。

我试着按照Jaromanda X的建议观看导航控制台,我明白了

ReferenceError:

pdfjsLib未定义

我解决了问题。 问题在于"content_scripts"中的"content_scripts" manifest.json "content_scripts""js"的脚本顺序是错误的。

我首先遇到了这个问题,因为script.js (附加脚本)在该pdf.js之前

   "content_scripts": [ 
    {
      "matches":["*://translate.google.com/*"],
      "js": ["script.js","pdf.js"]
    }

正确的方法是。

   "content_scripts": [ 
    {
      "matches":["*://translate.google.com/*"],
      "js": ["pdf.js","script.js"]
    }

如果使用Jquery,也应该在script.js之前

 "js": ["jquery.min.js","pdf.js","script.js"]

我通过添加以下行来解决它:

pdfjsLib.GlobalWorkerOptions.workerSrc = '//mozilla.github.io/pdf.js/build/pdf.worker.js';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM