有没有办法保存所选文本,并再次强调一次页面刷新?(Is there a way to save th

2019-09-19 07:50发布

我想选择文本,并保存在localStorage的或DB该选择,我可以通过阅读它从存储背部突出先前选定的文本。 但是,如果选择的文本是在多个位置页上,然后得到强调了所有情况下,我不想要的。 我可以抓住左侧和所选文本的顶部,但在字体大小调整,左/顶变化的情况下。 我不是在这里分享任何代码,因为没有什么可以分享与此有关。 仅供参考,我指的是iBooks应用程序在ipad具有相同的功能,我很愿意知道它是如何做正确?

更新:我尝试一种新的方法,其中我添加使用,我可以找出稍后高亮所选字符串的开始和结束选定的文本周围的标记。 :你可以在这里看到演示http://jsfiddle.net/codef0rmer/jE4w5/

但在iPad上rangeCount不能正常工作,是否有iPad的任何解决方法吗?

Answer 1:

你能得到关于使用当前选择信息window.getSelection() -在现代浏览器至少。 它会返回一个选择对象时,你可以用这个对象提供的属性玩开始:

  • anchorNode返回其中选择开始的节点。

  • anchorOffset返回选区的锚的anchorNode内偏移的字符数。

  • focusNode返回其中选择结束的节点。

  • focusOffset返回选择的重点是focusNode内偏移的字符数。

  • isCollapsed返回一个布尔值,表示选择的起点和终点是否在同一个位置。

  • rangeCount返回选择范围的数量。

此外,使用getRangeAt()方法,你可以得到的范围从选择对象,提供更多有用的方法和属性。

我不知道你想能走多远这种解决方案,并且您的问题比较普遍,所以这更像是你可以去,而不是现成的使用的解决方案方向。



文章来源: Is there a way to save the selected text and highlight it again once the page is refreshed?