我需要图书馆的功能,并且我已经使用过:
Turn.js ,用于flipbook效果(仅第3个版本正常工作,第4个版本无法使用,如果有人与turn.js的第4个版本具有类似的功能,那么请分享您的代码。)
pdf.js ,在客户端将PDF转换为HTML
This是我参考的参考链接。
我已经修改了一个动态使用该脚本的功能,它将PDF的路径添加到该功能中,根据该链接,可以在弹出窗口中打开书籍。
以下是JavaScript函数:
function display_book(path){
var url = path;
PDFJS.disableWorker = false;
PDFJS.getDocument(url).then(function(pdfDoc) {
numberOfPages = pdfDoc.numPages;
pdf = pdfDoc;
$('#book').turn.pages = numberOfPages;
$('#book').turn({acceleration: false,
pages: numberOfPages,
elevation: 50,
gradients: !$.isTouch,
// display: 'single',
when: {
turning: function(e, page, view) {
// Gets the range of pages that the book needs right now
var range = $(this).turn('range', page);
// Check if each page is within the book
for (page = range[0]; page<=range[1]; page++) {
addPage(page, $(this));
//renderPage(page);
};
},
turned: function(e, page) {
$('#page-number').val(page);
if (firstPagesRendered) {
var range = $(this).turn('range', page);
for (page = range[0]; page<=range[1]; page++) {
if (!rendered[page]) {
renderPage(page);
rendered[page] = true;
}
};
}
}
}
});
$("button.close").click(function(){
//code for destroy pdfjs object
$(".modal").css({"display":"none"});
});
});
}
在那个弹出关闭事件中,我想破坏PDFJS的对象(释放内存)。在这段代码中,使用了turn.js第3版本,如果我用第4版本替换该版本,那么代码就无法运行。
答案 0 :(得分:5)
您只需要在destroy
实例上调用pdfDoc
即可。
在您的代码示例中,pdfDoc
似乎已分配给全局变量pdf
。所以,这应该做你想要的:
pdf.destroy();