TS 下全局搜索 如何实现 新的方法是什么 有了解的小伙伴吗

来源:5-13 全文搜索功能实现(搜索算法+数组降维)

亚麻布

2022-07-15

在 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();
       }
   })
}

写回答

2回答

亚麻布

提问者

2022-08-02

发现是搜索的内容中有空格...(我的测试搜索内容中刚好有空格)   现在又来个更严重的 display 指定位置  无效

0
1
亚麻布
rendition = _book.renderTo("EpubRead", { width: "100%", height: height.toString() + "px", manager: "continuous", flow: "scrolled", snap: true, allowScriptedContent: true }) 必须要有一个具体的高度 才可以通到 rendition.display(item.cfi) 跳转 不能是100%
2022-08-02
共1条回复

扬_灵

2022-07-18

同学你好,首先得看一下ts支不支持epubjs,如果支持的话应该写法差不多

0
1
亚麻布
epubjs 是支持ts 的 只是我没找到 ts 下全局搜索的方法.
2022-07-20
共1条回复

Vue 实战商业级读书Web APP完整项目

Vue全家桶+最新前端技术+前后端分离架构,完整项目流程

1610 学习 · 1951 问题

查看课程