如何突出显示文本,然后将其保存以便下次访问同一页面时显示?

Posted

技术标签:

【中文标题】如何突出显示文本,然后将其保存以便下次访问同一页面时显示?【英文标题】:How do I highlight text, and then save it so it appears the next time I come to the same page? 【发布时间】:2015-10-27 13:57:06 【问题描述】:

我正在尝试编写一个网站,允许用户突出显示某些文本(将背景更改为黄色),然后应用程序将保存它,以便下次他或她返回页面时,它将是已经是黄色了(好像他们从未离开过一样)。

这是两个问题合二为一:

    我可以使用window.getSelection().toString() 获取文本,但我不知道如何将其作为选择器获取,因此我可以将选择的背景更改为黄色。

    我不知道如何获取选择的“地址”。我需要这个,以便我可以将其保存到数据库中,并在用户下次加载页面时将其涂成黄色。

编辑目前正在调查:https://github.com/timdown/rangy

【问题讨论】:

这个怎么样? ::-moz-selection /* Code for Firefox */ color: red; background: yellow; ::selection color: red; background: yellow; 这不会持续下去吧? 【参考方案1】:

    您需要使用一个设置所需背景颜色样式的类将所选文本包装在 <span> 中。 This question 应该会有所帮助。

    这在某种程度上取决于您的后端架构。您可能想要存储element with the highlighted text,以及高亮的起点和终点的索引。然后,当再次提供页面时,相应地重新应用<span>。如果您没有在数据库中存储任何内容,您可以尝试将这些数据存储在 localStorage 中,然后对其进行解析并在页面加载时应用高亮显示。

编辑: 我可能误会了。如果您正在谈论重置实际突出显示(如文本被重新选择),you can do that with javascript as well。您仍然需要一种方法来存储用户的选择数据,无论是服务器端还是通过 localStorage。

【讨论】:

是的,我读过一些关于 X-Path 的文章?这似乎是一种我可以保存到数据库的“地址”? XPath 是一种用于导航 XML 节点的查询语言。就其本身而言,这不会是一个解决方案。如果您需要将数据持久化到数据库中,您可能需要在后端系统上做一些功课。这个话题太大了,无法以 *** 的问答形式讨论。

以上是关于如何突出显示文本,然后将其保存以便下次访问同一页面时显示?的主要内容,如果未能解决你的问题,请参考以下文章

如何记录文本在页面上的位置?

如何使用 PDFKit 突出显示 pdf 中的选定文本?

如何将变量保存到新的文本文件中,以便下次程序运行时加载这些变量?

如何使用 PDFJS 突出显示文本?

Cookie是储存在电脑文本文件中的数据,用于保存访问者的信息,并可以在下次打开页面时引用。

下次运行应用程序时保存文本框值