我一直在使用pdf.js提供的prevnext.html示例在我的页面中显示pdf,因为它几乎完全符合我的需求
现在我想能够跳到一个给定的页面,所以我在前一个和下一个函数上创建了一个函数
function onNextPage() {
if (pageNum >= pdfDoc.numPages) {
return;
}
pageNum++;
queueRenderPage(pageNum);
}
这是我的函数,作为示例
的onNextPage
函数的简化版本
function onMyPage(pageNum) {
queueRenderPage(pageNum);
}
我从这样的按钮打电话
<button onclick="return onMyPage(10)">Mypage</button>
这很好。
在同一页面上我使用vimeo.js来控制我的播放器并使用事件列表器 不可能知道经过的时间
player.on('timeupdate', function(data) {
if (data.seconds >= 0){imgNum = "1";}
if (data.seconds >= 2.5){imgNum = "2";}
if (data.seconds >= 18){imgNum = "3";}
if (data.seconds >= 37.5){imgNum = "4";}
document.getElementById('output').innerHTML = imgNum;
});
例如,这使我能够在imgNum
div id="output"
的值
大
在这里开始令人惊讶的事情:
如果我在我的事件监听器的承诺中添加我的函数onMyPage
,它只适用于数字而不是变量;见下面的代码
player.on('timeupdate', function(data) {
if (data.seconds >= 0){imgNum = "1";}
if (data.seconds >= 2.5){imgNum = "2";}
if (data.seconds >= 18){imgNum = "3";}
if (data.seconds >= 37.5){imgNum = "4";}
document.getElementById('output').innerHTML = imgNum;
onMyPage(11)
});
使用之前的代码,当vimeo播放器正在播放时,它确实会跳转到第11页
player.on('timeupdate', function(data) {
if (data.seconds >= 0){imgNum = "1";}
if (data.seconds >= 2.5){imgNum = "2";}
if (data.seconds >= 18){imgNum = "3";}
if (data.seconds >= 37.5){imgNum = "4";}
pageNum = imgNum
document.getElementById('output').innerHTML = imgNum;
document.getElementById('output2').innerHTML = pageNum;
onMyPage(pageNum)
});
但不是这个,而我确定pageNum包含正确的值,感谢我的div id="output2"
除此之外,prevnext.html示例中原生出现的上一个和下一个按钮在播放器播放时不会正常运行,但在播放器停止时没有任何大惊小怪(这是正常的)
看到这一点,我花了好几个小时试图让它以多种方式运作,但它永远不会发生...... 任何帮助都会受到欢迎 提前谢谢