PDF.js如何创建页面呈现事件
PDF.js how to create a page rendered event?
我正在使用带有默认查看器的PDF.js,并且需要检测每次呈现页面的时间。
当文档被反对、滚动或缩放时,应该会发生这种情况。
据我所知,我只能在自己显式呈现页面时使用 promise,但是每当呈现页面时是否有回调或要侦听的东西?实际上获取页面(因为int就足够了(也非常重要。
对于显式呈现:
好吧,我检查了源代码,似乎如果您显式呈现页面,您可以使用:
page.render(content).promise.then(function(){
alert("done");
});
文档指出:
承诺渲染任务完成。
隐式呈现
好吧,您可以随时覆盖页面以自己提供事件,渲染不在任何原型上,因此这变得非常丑陋。 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);
}
这是未记录的,可能会中断。没有记录的方法可以做到这一点。
相关文章:
- 在创建对象后附加一个jquery事件
- 动态创建OnClick事件Javascript
- 谷歌地图动态创建的标记点击事件使用相同的标记
- 如何在javascript中创建自定义事件
- 在动态创建的标记上添加事件
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- 如何在Ol3弹出窗口中添加用javascript创建的按钮上的点击事件
- 如何在jQuery Mobile 1.4 Datepicker中创建事件
- 使用jQuery删除动态创建的元素上的mouseenter事件
- 如何使用我的Jquery代码创建委托事件侦听器
- 什么'是在HTML5画布中创建关键事件的最佳方式
- 如何在动态创建元素的内联onclick事件中传递对象
- 将Backbone.View重新注入DOM,保留事件而不是创建新事件
- 使用 noUiSlider 通过点击事件创建范围时出错
- 两个同步事件创建了一个无限循环
- 使用jQuery定义onInput事件创建元素
- 事件创建中的Javascript绑定对象
- 为已发出的事件创建侦听器时的闭包问题
- 如何为必应地图事件创建闭包
- 为事件创建单元测试