javascript - PDF.js如何创建页面渲染事件?

标签 javascript jquery events promise pdf.js

我在默认查看器中使用 PDF.js,每次呈现页面时都需要检测。

这应该在打开、滚动或缩放文档时发生。

据我所知,我只能在我自己显式呈现页面时使用 promises,但是每当呈现页面时是否有回调或要听的东西?实际获取页面(因为 int 就足够了)也非常重要。

最佳答案

对于显式渲染:

好吧,我检查了the source似乎如果您显式呈现页面,您可以使用:

page.render(content).promise.then(function(){
  alert("done");
});

文档说明:

Promise for rendering task completion.

隐式渲染

好吧,您始终可以覆盖页面以自己提供事件,渲染不在任何原型(prototype)上,所以这变得非常难看。 render 调用返回 RenderTask它有一个 InternalRenderTask它有一个回调。所以你可以通过这样做来欺骗它:

var renderTask = page.render(...); // make any page render anything anywhere
var internal = renderTask.__proto__;
var oldNext = internal._next;

internal._next = function(){
     if((this.operatorListIdx === this.operatorList.argsArray.length) &&
         this.operatorList.lastChunk){
         anyPageRendered(this.pageNumber);             
     }
     // decorate
     return oldNext.apply(this, arguments);
};

function anyPageRendered(pageNumber){
    // your code here
    alert("Rendered " + pageNumber); 
}

这是未记录的,可能会中断。没有记录的方法来执行此操作。

关于javascript - PDF.js如何创建页面渲染事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27590545/

相关文章:

javascript - 如何停止后台上传?

javascript - 检查未定义的 JavaScript 变量?

.net - 如何在F#中创建.NET兼容事件?

javascript - 为什么我的触发箭头键事件在 Java 脚本中不起作用?

javascript - AngularJS 1.5 : Component won't load http data

jquery - 如何尽可能流畅地加载网页

javascript - 如何将客户端网页计时器与服务器同步

我可以在 Linux 上监视文件重命名事件吗?

javascript - 将当前页面的 php 变量传递给 XMLHttpRequest2(即 $user_id)

javascript - typescript ,如何引用未导出的 OAuth2Client? google-api-nodejs-客户端