在 js 版的epubjs 中可以通过以下代码进行全局搜索,如果只有一个匹配项的话 自动跳转到位置
currentChange: function (sitem) {
var that = this;
that.book.spine.spineItems.map(function (item) {
var tmpArray = item.find(sitem.label)
if (tmpArray.length == 1) {
that.display(tmpArray[0].cfi)
//that.refreshLocation(true);
}
})
}
现在我用了typeScript 的版本 在ts 版下 进行全局搜索该如何实现
已实现
关键代码
rendition = _book.renderTo("EpubRead", {
width: "100%",
height: "800px", // 这里一定要是一个具体的高度
manager: "continuous",
flow: "scrolled",
snap: true,
allowScriptedContent: true
})
let scrollToEditorElem = (sitem: any) => {
//这里要注意搜索内容 有空格的情况(暂未解决)
//只能把_book 转为any 好坑
(_book as any).spine.spineItems.map(function (item: any) {
var tmpArray = item.find(sitem.BookmarkTitle)
if (tmpArray.length == 1) {
rendition.display(tmpArray[0].cfi)
//refreshLocation();
}
})
}