Я работаю над очень простой веб-страницей, которая встраивает ресурс PDF в тег <object>
. Я хочу, чтобы на моей веб-странице было две кнопки: одна для создания PDF go на следующей странице, а другая go для предыдущей. Основная проблема, с которой я сталкиваюсь, заключается в том, что я не могу знать, сколько страниц PDF имеет, поэтому, когда PDF достигает последней страницы, и я нажимаю кнопку «Следующая страница», PDF автоматически переходит на первую страницу, и даже хуже того, переменная JavaScript, которую я использую для представления номера текущей страницы, становится бессвязной, поскольку фактический диапазон страниц переполняется.
Мой базовый код следующий:
HTML:
<object id="pdf" type="application/pdf" data="demo.pdf#page=1" width="240" height="320"></object>
<div id="footer">
<button type="button" onclick="GoPrevPage();">Go Prev Page</button>
<button type="button" onclick="GoNextPage();">Go Next Page</button>
</div>
JavaScript:
var pageNumber=1;
function GoPrevPage()
{
if (1!=pageNumber)
{
pageNumber--;
document.getElementById('pdf').setAttribute('data', 'demo.pdf#page='+pageNumber);
}
}
function GoNextPage()
{
pageNumber++;
document.getElementById('pdf').setAttribute('data', 'demo.pdf#page='+pageNumber);
}
Я заметил, что Firefox выводит следующее сообщение об ошибке после выхода за пределы последней страницы PDF:
PDFViewer.currentPageNumber: "#" is not a valid page.
где #
- это страница, на которой я пытаюсь go.
Цель: Я хочу определить, что в PDF-файле отображается последняя страница действовать правильно и / или иметь действительно и всегда связную переменную pageNumber
. Кроме того, я хотел бы использовать кросс-браузерное решение, поскольку до сих пор я пробовал это только в Firefox.
Ниже я попытался решить эту проблему следующим образом:
1. Измените функцию GoNextPage
, чтобы попытаться перехватить некоторое состояние ошибки следующим образом:
function GoNextPage()
{
try
{
pageNumber++;
document.getElementById('pdf').setAttribute('data', 'demo.pdf#page='+pageNumber);
}
catch (error) // PDFViewer.currentPageNumber: "#" is not a valid page.
{
console.log(0);
pageNumber--;
}
}
2. Есть окно onerror
Обработчик:
window.onerror=function(e,u,l)
{
console.log(1);
// Detect some error condition and act properly
}
3. Иметь обработчик тела onerror
:
<body onerror="console.log(2);">
4. Иметь обработчик onerror
на самом элементе <object>
:
<object id="pdf" type="application/pdf" data="demo.pdf#page=1" width="240" height="320" onerror="console.log(4);"></object>
Обратите внимание, что все эти попытки просто выводят что-то с помощью console.log()
, чтобы увидеть, можно ли как-то перехватить условие ошибки, но исключение не выдается в любом случае.
Ссылки: https://medium.com/@flipbook / 3 шага к встраивают-PDF-документов-in html -website-56f14b904174 Рекомендуемый способ встраивания PDF в HTML? Перейти на определенную страницу при встраивании документа PDF в HTML