URL 中的 `#:~:text=` 位置哈希到底是什么?

pal*_*sch 129 url google-chrome highlight

今天我注意到谷歌上的一些搜索给了我指向结果的链接,其中包含突出显示文本的明显说明。

Google 将我带到Windows 10 Pro 64 上 zip 文件的最大大小是多少...

Google 搜索“win explorer max zip file size” - 结果中的 Stack Exchange 页面有亮点

我进一步试验了一下,这似乎是 Google Chrome 的一个功能。如果您附加#:~:text=something到 URL,它会突出显示页面上的文本。https://example.com/#:~:text=domain似乎工作正常,但仅限于 Chrome(左侧为 Chrome Beta,右侧为 Firefox)。

example.com 上突出显示了“描述”一词

这个词text加上不同的字符有点难用谷歌搜索,所以我找不到关于这个主题的任何东西。

要了解有关此类“URL-hacks”的更多信息,我想知道:
Google Chrome 的此功能称为什么?

pal*_*sch 140

滚动到文本片段

好的,在朋友的帮助下,同时通过Berto99的评论,我找到了它:

显然,这是一项名为Scroll To Text Fragment 的功能。它自 Chrome 80 起默认启用,但显然尚未在其他浏览器中实现。

“W3C Community Group Draft Report”中有相当不错的例子。更多好的例子可以在Wikipedia上找到。

突出显示某个文本的第一次出现

只需附加#:~:text=<text>到 URL。文本搜索不区分大小写。

示例: https://example.com#:~:text=domain example.com 上突出显示了“域”一词

突出显示整个文本部分

您可以使用#:~:text=<first word>,<last word>突出显示整个文本部分。

示例: https : //stackoverflow.com/questions/62161819/what-exactly-is-the-text-location-hash-in-an-url/62162093# :~: text=显然,维基百科 这个答案的一部分被突出显示

更先进的技术

  • 前缀/后缀确实有效。但该示例并非如此,因为自 2019 年 10 月以来,维基百科中就不存在该文本。这指出了使用页面内容进行滚动和突出显示的危险之一。 (12认同)
  • 对于像我一样来到这里想知道如何“关闭”这个烦人功能的人来说,Chrome 中的标志称为“启用文本片段锚点”。-- chrome://flags/#enable-text-fragment-anchor (5认同)
  • 现在,macOS 上的 Safari 支持来自 Google 搜索的功能。不确定何时启用此功能。 (4认同)
  • @mgkrebbs“使用页面内容进行滚动和突出显示的危险之一”但这不是“危险”,这只是一种权衡。最坏的情况就是没有细粒度的定位,仅此而已。与普通的“#fragment”链接完全相同。注意:页面_结构_也可以改变,渲染正常片段定位也很脆弱。但那很好。链接有时会中断的事实并不意味着它们是“危险的”。这是网络固有的、普遍的属性,无论如何我们都必须处理它。 (3认同)
  • @palsch 顺便说一句,您可以通过将时间戳悬停在评论旁边来获取 Stack Overflow(不确定其他 SE 网站)评论的链接。[示例](/sf/ask/4351327361/#comment109940026_62161819) (3认同)
  • chrome://flags/#enable-text-fragment-anchor 在 Chrome 85 中不可用。 (3认同)
  • 知道如何在 javascript 中阅读此内容吗? (3认同)
  • 回归 Google 快速滚动 (2认同)
  • 有关此功能的更多详细信息和背景,请参阅[文章](https://web.dev/text-fragments/)。 (2认同)
  • Firefox 有同等功能吗? (2认同)
  • @Thielicious 不,不幸的是,即使是现在,Firefox 也不支持它。 (2认同)