请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

正在回答 回答被采纳积分+3

2回答

提问者 亚麻布 2022-08-02 14:15:20

发现是搜索的内容中有空格...(我的测试搜索内容中刚好有空格)   现在又来个更严重的 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 16:49:49
扬_灵 2022-07-18 18:08:44

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

0 回复 有任何疑惑可以回复我~
  • 提问者 亚麻布 #1
    epubjs 是支持ts 的  只是我没找到 ts 下全局搜索的方法.
    回复 有任何疑惑可以回复我~ 2022-07-20 10:11:27
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信