PDF.js 会在我浏览页面时引发事件吗?

Does PDF.js raise an event as I browse between pages?

我在页面之间浏览时 PDF.js 是否引发事件?

基本上,当我在 PDF.js 文档的页面之间浏览时,我想更新 URL 并添加到 pushstate。

当我在页面之间浏览时,PDF.js 会引发事件吗?如果是,事件叫什么?

谢谢

是的,有一个名为 pagechange 的活动。

你可以这样使用它:

document.addEventListener('pagechange', function(e) {
  if (e.pageNumber !== e.previousPageNumber) {
    console.log('page changed from ' + e.previousPageNumber + ' to ' + e.pageNumber);
  }
});

打开 the viewer 并将上面的代码放入控制台,看看会发生什么!

在您的 viewer.js 文件中使用 eventBusDispatchToDOM: true

现在在 pdf.js 的 v2.1.233 中,事件是 pagechanging

以下代码对我有用 -

window.PDFViewerApplication.eventBus.on('pagechanging', function pagechange(evt) { 
   console.log(evt)
});

现在在 pdf.js 的 v2.13.216 中,来自 here

document.addEventListener("webviewerloaded", () => {
    PDFViewerApplication.initializedPromise.then(() => {
        PDFViewerApplication.eventBus.on("documentloaded", (e) => {
            console.log("The document has now been loaded");
        });

        PDFViewerApplication.eventBus.on("pagechanging", (e) => {
            console.log('pagechanging, from ' + e.previous + ' to ' + e.pageNumber);
        });

        PDFViewerApplication.eventBus.on("scalechanging", (e) => {
            console.log('scalechanging, scale ' + e.scale);
        });
    });
});