diff --git a/web/viewer.js b/web/viewer.js index 3f8056cef..9650515a5 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -1129,28 +1129,31 @@ var PDFView = { PDFView.navigateTo(params.nameddest); return; } + var pageNumber, dest; if ('page' in params) { - var pageNumber = (params.page | 0) || 1; - if ('zoom' in params) { - var zoomArgs = params.zoom.split(','); // scale,left,top - // building destination array + pageNumber = (params.page | 0) || 1; + } + if ('zoom' in params) { + var zoomArgs = params.zoom.split(','); // scale,left,top + // building destination array - // If the zoom value, it has to get divided by 100. If it is a string, - // it should stay as it is. - var zoomArg = zoomArgs[0]; - var zoomArgNumber = parseFloat(zoomArg); - if (zoomArgNumber) - zoomArg = zoomArgNumber / 100; - - var dest = [null, {name: 'XYZ'}, - zoomArgs.length > 1 ? (zoomArgs[1] | 0) : null, - zoomArgs.length > 2 ? (zoomArgs[2] | 0) : null, - zoomArg]; - var currentPage = this.pages[pageNumber - 1]; - currentPage.scrollIntoView(dest); - } else { - this.page = pageNumber; // simple page + // If the zoom value, it has to get divided by 100. If it is a string, + // it should stay as it is. + var zoomArg = zoomArgs[0]; + var zoomArgNumber = parseFloat(zoomArg); + if (zoomArgNumber) { + zoomArg = zoomArgNumber / 100; } + dest = [null, {name: 'XYZ'}, + zoomArgs.length > 1 ? (zoomArgs[1] | 0) : null, + zoomArgs.length > 2 ? (zoomArgs[2] | 0) : null, + zoomArg]; + } + if (dest) { + var currentPage = this.pages[(pageNumber || this.page) - 1]; + currentPage.scrollIntoView(dest); + } else if (pageNumber) { + this.page = pageNumber; // simple page } if ('pagemode' in params) { var toggle = document.getElementById('sidebarToggle');