Browse Source

Make PDFHistory optional in PDFLinkService

Currently `PDFLinkService` requires access to a `PDFHistory` instance in order for it to work correctly (and to avoid errors). If we want `PDFLinkService` to be more useful in custom viewers, I don't think that we actually want to force it to have a `PDFHistory` instance.
Hence this patch, which contains a very simply approach to make `PDFHistory` optional.
Jonas Jenwald 10 years ago
parent
commit
20881dc99a
  1. 10
      web/pdf_link_service.js

10
web/pdf_link_service.js

@ -89,12 +89,14 @@ var PDFLinkService = (function () { @@ -89,12 +89,14 @@ var PDFLinkService = (function () {
}
self.pdfViewer.scrollPageIntoView(pageNumber, dest);
if (self.pdfHistory) {
// Update the browsing history.
self.pdfHistory.push({
dest: dest,
hash: destString,
page: pageNumber
});
}
} else {
self.pdfDocument.getPageIndex(destRef).then(function (pageIndex) {
var pageNum = pageIndex + 1;
@ -173,7 +175,9 @@ var PDFLinkService = (function () { @@ -173,7 +175,9 @@ var PDFLinkService = (function () {
var params = parseQueryString(hash);
// borrowing syntax from "Parameters for Opening PDF Files"
if ('nameddest' in params) {
if (this.pdfHistory) {
this.pdfHistory.updateNextHashParam(params.nameddest);
}
this.navigateTo(params.nameddest);
return;
}
@ -233,7 +237,9 @@ var PDFLinkService = (function () { @@ -233,7 +237,9 @@ var PDFLinkService = (function () {
} else if (/^\d+$/.test(hash)) { // page number
this.page = hash;
} else { // named destination
if (this.pdfHistory) {
this.pdfHistory.updateNextHashParam(unescape(hash));
}
this.navigateTo(unescape(hash));
}
},
@ -245,11 +251,15 @@ var PDFLinkService = (function () { @@ -245,11 +251,15 @@ var PDFLinkService = (function () {
// See PDF reference, table 8.45 - Named action
switch (action) {
case 'GoBack':
if (this.pdfHistory) {
this.pdfHistory.back();
}
break;
case 'GoForward':
if (this.pdfHistory) {
this.pdfHistory.forward();
}
break;
case 'NextPage':

Loading…
Cancel
Save