比“Ctrl+F”更智能:直接链接到网页内容

在过去,想要将某个网页上的特定部分分享给别人,我们只能使用“锚点链接”,也就是将网页 URL 后面加上 # 和一个 ID 片段(例如 #section1)。这种方式虽然可以让你跳转到页面的某个部分,但它有一个显著的限制:只有在目标文本有明确的 ID 时才能使用,而如果你想链接到没有 ID 的内容,就只能借助浏览器的“查找”功能(Ctrl+F)手动定位,显得不够智能和方便。

但现在,一项新的技术让这一切变得更加智能:文本片段


什么是文本片段?

文本片段是现代网络的一项强大功能,它允许你直接链接到网页中的特定文本,而无需依赖任何 ID。它通过在 URL 末尾附加特定的语法,能够让浏览器精确定位并突出显示指定的文本,极大提高了用户体验。

这项功能的背后是 ::target-text 伪元素,它不仅能够高亮显示文本,还能给该部分应用样式,从而实现更直观的页面交互。


文本片段的工作原理

文本片段通过在 URL 后添加特定语法来工作,格式如下:

https://example.com/page.html#:~:text=[prefix-,]textStart[,textEnd][,-suffix]
  • prefix-:如果你需要确保文本前面有特定的内容,可以在 textStart 前加上这一部分。它在页面上不可见,仅帮助浏览器确定正确的匹配。

  • textStart:你要突出显示的文本的开始部分。

  • textEnd:文本的结束部分(如果你只需要突出显示一部分内容)。

  • -suffix:与 prefix- 类似,用来帮助确定文本的结束位置。

例如,下面这个链接:

https://www.runwsh.com/archives/wei-ming-ming-wen-zhang#:~:text=剑意重,自不屑伪装,侠气盛,又何须掩藏。

它会自动将页面上的 “剑意重,自不屑伪装,侠气盛,又何须掩藏。”这段文本高亮显示。如果你点击这个链接,页面会自动滚动到并突出显示这一部分。


如何使用文本片段?

你可以通过简单的 URL 格式来创建文本片段链接。用逗号分隔来左边为片首,逗号右边为片尾比如,下面这个链接:

https://www.runwsh.com/archives/wei-ming-ming-wen-zhang#:~:text=这句话以郭,岁月的沧桑

它将突出显示“即张君宝”和“小说中郭靖和妻子黄蓉死守襄阳抵抗”这两部分文本,并且浏览器会自动滚动到这些文本所在的位置。你还可以使用 & 符号一次性突出显示多个文本,如下所示:

https://www.runwsh.com/archives/wei-ming-ming-wen-zhang#:~:text=即张君宝&text=小说中郭靖和妻子黄蓉死守襄阳抵抗

这将高亮显示“即张君宝”和“小说中郭靖和妻子黄蓉死守襄阳抵抗”两段文本。


文本片段的有趣行为

文本片段不仅仅是简单的高亮显示,它还可以解决一个以前无法实现的功能:打开隐藏的内容

例如,某些网页中的元素(如折叠的详细信息区域)默认是隐藏的,但通过文本片段链接,它们会自动展开。下面这个链接就演示了这个效果:

https://www.runwsh.com/archives/wei-ming-ming-wen-zhang#:~:text=Hello%20World

当你点击这个链接时,页面上的“details”部分会自动展开,显示内容。这个功能目前仅在 Google Chrome 浏览器中有效,因为它是唯一支持“发现内容”的浏览器。


为突出显示的片段添加样式

你可以使用 CSS 来为文本片段指定样式。例如,如果浏览器支持文本片段,你可以使用以下代码来改变高亮文本的样式:

::target-text {
    background-color: yellow;
}

目前,浏览器支持的样式属性包括:

  • 颜色color

  • 背景颜色background-color

  • 文字装饰(如下划线等)

  • 文字阴影text-shadow

  • 描边颜色和宽度stroke

不过,要注意的是,Safari 浏览器尚不支持 ::target-text 伪元素,但它已在技术预览版中出现。


浏览器支持情况

目前,大多数现代浏览器都支持文本片段的基础功能。对于不支持的浏览器,页面将正常加载,但不会突出显示文本或滚动到指定的文本位置。

此外,Chrome、Firefox 和 Safari 等浏览器的高亮显示效果略有不同:例如,Safari 会高亮显示整行,而 Chrome 和 Firefox 只高亮显示文本内容,行间空白部分不会被高亮。


结语:未来的可能性

我第一次接触文本片段时,是通过 Google 搜索结果生成的链接。最初,我以为这只是 Chrome 的独有功能,但后来发现它已经成为一个开放的 Web 标准,任何浏览器只要支持,都可以实现这一功能。

随着这项技术的普及,想象一下生成式人工智能如何利用文本片段技术提供精准的引用,帮助用户快速找到他们所需的确切信息。这不仅能提升透明度,还能改善用户体验,尤其是在浏览人工智能生成的内容时。

未来,如果这项功能能变得更加普及,甚至让非技术用户也能轻松生成指向特定段落的链接,那将会是一个非常有前景的发展方向。无论是通过浏览器原生功能,还是通过简单的扩展插件,都能让深度链接变得更简单、更方便。


如果你感兴趣,也可以在浏览器中亲自试试这些文本片段链接,体验一下这种比传统“Ctrl+F”更智能、更直观的网页导航方式!