我对EPUB文件了解不多,也许有一些方法可以获取当前显示文本的偏移量。他们的方式我认为你可以做到这一点将是基本js并且需要整个文本和当前显示的文本。自从你写了
我可以从 DOM 中获取当前可见的节点。
我认为可以安全地假设您有权访问显示的文本。
我想到的方法是使用
String.prototype.indexOf()
方法来查找该文本切片在整个文本中的位置。例如
// get the whole text
const fullText = "This is a very long text. I can read it for hours and it doesnt stop there."
// get the text of the current displayed node
const nodeText = "read it for hours and it doesnt stop there."
console.log("The offset of the current displayed text is " + fullText.indexOf(nodeText));
// output: The offset of the current displayed text is 32
请记住,可能有某种方法可以使用 EPUB 文件执行此操作,并且它的框架已经内置,我对 EPUB 文件了解不多。但这将是一种在整个文本中查找文本切片位置的方法。