我正在开发一个镀铬扩展。我想知道的是,弹出窗口可以显示pdf中的文本。我搜索了PDF.js,并在chrome扩展的backgroud.js中编写了以下代码进行测试:
‘use strict’;
var pdf = PDFJS.getDocument('http://www.pacer.gov/documents/pacermanual.pdf');
var pdf = PDFJS.getDocument('pacermanual.pdf');
pdf.then(function(pdf) {
var maxPages = pdf.pdfInfo.numPages;
for (var j = 1; j <= maxPages; j++) {
var page = pdf.getPage(j);
// the callback function - we create one per page
var processPageText = function processPageText(pageIndex) {
return function(pageData, content) {
return function(text) {
// bidiTexts has a property identifying whether this
// text is left-to-right or right-to-left
for (var i = 0; i < text.bidiTexts.length; i++) {
str += text.bidiTexts[i].str;
}
if (pageData.pageInfo.pageIndex ===
maxPages - 1) {
// later this will insert into an index
console.log(str);
}
}
}
}(j);
var processPage = function processPage(pageData) {
var content = pageData.getTextContent();
content.then(processPageText(pageData, content));
}
page.then(processPage);
}
});
清单如下:
{
"name": "englishhelper",
"version": "0.0.1",
"description": "",
"permissions": [
"tabs", "http://*/*", "https://*/*"
],
"background":{
"script":["background.js","PDF.js"]
},
"browser_action":{
"default_icon":"icon_png",
"default_popup":"popup.html"
},
"manifest_version": 2
}
popup.html如下所示:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="popup.css">
<title></title>
</head>
<body>
<script src="background.js"></script>
<script src="PDF.js"></script>
</body>
</html>
控制台显示"PDFJS未定义“。"PDF.js“已包含在popup.html中。铬扩展是否有可能使用PDF.js?
发布于 2014-09-18 05:09:36
错误的加载顺序.(我们有一个规范的问题吗?)
清单中的background.script
或content_scripts[i].js
键是一个数组,换句话说,是一个有序列表。
脚本是按照在那里定义的顺序加载和执行的;在使用它们之前,需要确保加载了库。
在您的情况下,您需要交换它们:
"background":{
"script": ["PDF.js", "background.js"]
},
同样适用于<script>
标记的顺序,例如在popup.html
中。
https://stackoverflow.com/questions/25912961
复制相似问题