我构建了一个epub引擎,可以读取ePub books
的许多功能,如分页,添加注释,突出显示,搜索等。一切正常,但我遇到了2个问题。
第一个:你知道的分页功能是一个JavaScript函数,它将html文件的内容分成基于加载它的web-view框架的页面,因为html可能包含文本和图像图像也可能是分页,因此它将分为2页,这不会使我想要整个图像出现的场景特别是封面页。
第二个:我通常在本章末尾有一个空白页面(html文件)..你知道我怎么能阻止它?
这些是我用于分页的
JavaScript
函数:
function setupBookColumns(){
var body = document.getElementsByTagName('body')[0].style;
body.marginLeft = 0;
body.marginRight = 0;
body.marginTop = 0;
body.marginBottom = 0;
var bc = document.getElementById('book-columns').style;
bc.width = (window.innerWidth * 2) + 'px !important';
bc.height = (window.innerHeight-kMaxFont) + 'px !important';
bc.marginTop = '0px !important';
bc.webkitColumnWidth = window.innerWidth + 'px !important';
bc.webkitColumnGap = '0px';
bc.overflow = 'visible';
if ( gCurrentPage < 0 )
gCurrentPage = 1;
gProgress = gPosition = 0;
var bi = document.getElementById('book-inner').style;
bi.marginLeft = '0px';
bi.marginRight = '0px';
bi.padding = '0';
gPageCount = document.body.scrollWidth / window.innerWidth;
// Adjust the page count to 1 if it's invalid
if (gPageCount < 1) {
gPageCount = 1;
}
}
function paginate()
{
if (gClientHeight == undefined) {
gClientHeight = document.getElementById('book-columns').clientHeight;
}
var leftBlocker = document.getElementById('left-blocker');
var parent = leftBlocker.parentNode;
parent.removeChild(leftBlocker);
leftBlocker.style.left = '-200px';
var rightBlocker = document.getElementById('right-blocker');
parent.removeChild(rightBlocker);
rightBlocker.style.left = '-200px';
setupBookColumns();
parent.appendChild(leftBlocker);
parent.appendChild(rightBlocker);
}
我在h webView
加载完成后加载html文件(章文件)我调用上面发布的paginate函数..这会根据文本量,文本大小给出一些页面什么持有文本的框架(在我的情况下是webView)..所以我可以使用JavaScript函数goForward和goBack。