【问题标题】:What exactly is the `#:~:text=` location hash in an URL? [closed]URL 中的 `#:~:text=` 位置哈希到底是什么? [关闭]
【发布时间】:2020-09-21 12:01:25
【问题描述】:

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

Google 将我带到What is the maximum size of a zip file on Windows 10 Pro 64...,网址如下:

https://superuser.com/questions/1305867/what-is-the-maximum-size-of-a-zip-file-on-windows-10-pro-64-bit#:~:text=4%20GB%20size%20is%20a,about%2016%20exabytes%20size%20limitation

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

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

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

【问题讨论】:

  • 我可以在这个网站上找到它和其他人chromestatus.com/feature/4733392803332096
  • 我喜欢。如果滚动时突出显示不会消失,我会讨厌它,但确实会。
  • This Chrome add-on 可以从 URL 中删除这些文本片段。创建一个匹配所有站点 (.*) 的组,并在内部匹配 (.*)#:~:.* 并替换为 $1
  • @Makyen 你介意解释一下为什么你认为这个问题不适合这个网站吗?我当然认为这是一个边缘案例,但是所讨论的功能的名称似乎如此未知,但仍需要技术实现,而这是 Stack Overflow 可以提供的帮助。
  • @palsch 这是一个“软件开发独有的实用、可回答的问题”吗?您实际上是在问“Google Chrome 的这个功能叫什么?”,即“我的浏览器的这个功能叫什么?”它也可以解释为“这部分 URL 的名称是什么”。这些不是编程问题。它们是一般技术问题。结束这个问题并不意味着它没有用。这只是意味着它在这里不是主题。

标签: google-chrome url uri highlight


【解决方案1】:

滚动到文本片段

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

显然这是一个名为 Scroll To Text Fragment 的功能。它是enabled by default since Chrome 80,但显然还没有在其他浏览器中实现。

"W3C Community Group Draft Report" 中有很多很好的例子。更多好的例子可以在Wikipedia找到。

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

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

示例: https://example.com#:~:text=domain

突出显示整个文本部分

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

示例: https://stackoverflow.com/questions/62161819/what-exactly-is-the-text-location-hash-in-an-url/62162093#:~:text=Apparently,Wikipedia

更先进的技术

【讨论】:

  • 前缀/后缀确实有效。但是,该示例没有,因为自 2019 年 10 月以来,该文本在 Wikipedia 中已不存在。这指出了使用页面内容进行滚动和突出显示的危险之一。
  • 回到谷歌快速滚动
  • @mgkrebbs“使用页面内容进行滚动和突出显示的危险之一”但这不是“危险”,它只是一种权衡。在最坏的情况下,不会有细粒度的定位,仅此而已。与普通的#fragment 链接完全相同。注意:页面结构也可以改变,导致正常的片段定位也变脆。但这没关系。链接有时会断开的事实并不意味着它们是“危险的”。无论如何,这是我们必须处理的网络固有的、普遍的属性。
  • 对于像我这样想知道如何关闭这个烦人功能的人来说,Chrome 中的标志称为“启用文本片段锚”。 -- chrome://flags/#enable-text-fragment-anchor
  • chrome://flags/#enable-text-fragment-anchor 在 Chrome 85 中不可用。
猜你喜欢
  • 1970-01-01
  • 2011-01-22
  • 1970-01-01
  • 2010-12-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多