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

Loading…
Cancel
Save