Safari 有一个重要的新功能对您来说 iPhone,这将改变您分享、接收链接以及与链接交互的方式——但没有人谈论它。 该功能目前有效 iOS 软件以及最新的 iPadOS 和 macOS 版本。 不过,您在这里找不到有关 Safari 的任何信息,因此,如果您还没有碰巧看到它,它就相当隐藏了。
1. URL片段的基础知识
您可能多次遇到过这种情况:带有直接链接到网页特定部分的目录的网页。 维基百科因让您知道自己要查找的内容而更容易查找信息而闻名。 您只需点击或单击链接即可跳转到正确的位置,而无需向下滚动并自行搜索。
无需赘述,这些跳转链接要归功于片段,这是 URL 的可选部分,位于 计划、权限、路径和查询部分。 数字符号或井号(#)是片段标识符,其后面的内容指的是网络文档的特定部分。 这些在网站中进行编码,并通过深层链接引用特定的“id”属性。 因此,除非您使用指定的锚标记,否则简单地键入 # 后跟单词或短语不会产生任何效果。
https://en.wikipedia.org/wiki/WonderHowTo#WonderHowTo_Network
|___| |______________||_______________||__________________|
| | | |
scheme authority path fragment
当您点击或单击超链接时,Gadget Hacks 还使用 URL 片段直接将您带到文章的重要部分。 例如,下面的链接将直接带您前往 Siri 哈利波特咒语指南中的第九个咒语。
https://gadgethacks.com/how-to/potter-spells-0384951#jump-9heysirihomenumrevelio
这些链接在浏览互联网时非常有用,但并非每个网站都使用它们。 这就是文本片段发挥作用的地方,这是由 网络孵化器社区小组 (WICG),它允许您链接到几乎任何网页或转到特定部分,而无需嵌入锚标记。
2. 文本片段让生活更轻松
拟议的文本片段规范已被采纳 Google Chrome 自2020年初以来,它还与微软合作 Edge。 莫兹拉 Firefox 是 目前没有 支持,但是 Apple 跳上船 Safari 16.1 随之而来 iOS 16.1 于 2022 年 10 月 24 日更新。(它也适用于 iPadOS 16.1 及更高版本以及 macOS 13.0 及更高版本。)
- 不要错过:26 大 iPhone 功能和改进 iOS 16.1
文本片段的语法非常简单,如下所示。 事情就是这样开始的 # 像所有片段一样,然后使用 :~:文字= (Fragment 指令)指示应立即找到、突出显示并自动滚动以下百分比编码文本。 还有一些其他选项可让您突出显示整个文本块或查找特定文本而不是其第一次出现。
它是为用户代理指令(例如 text=)保留的,并在加载时从 URL 中删除,因此创作脚本无法直接与其交互。 用户代理指令也称为指令。 在这种特定情况下,text= 因此被称为文本指令。
#:~:text=textStart
Links to and highlights the first
instance of an exact text match.
#:~:text=textStart,textEnd
Links to and highlights a block of
text that starts with the word(s)
before the comma and ends with the
word(s) after the comma.
#:~:text=prefix-,text
Links to and highlights the text
after the comma, with the
prefix- word(s) helping to
find the right text (when the text
appears multiple times).
#:~:text=text,-suffix
Links to and highlights the text
before the comma, with the
-suffix word(s) helping to
find the right text (when the text
appears multiple times).
#:~:text=prefix-,text,-suffix
Links to and highlights the text
between the commas, with the
prefix- and -suffix word(s) helping
to find the right text (when the
text appears multiple times)
#IDattribute:~:text=AnyOfTheAbove
Links to an anchor tag embedded
on the document and highlights
whatever fragment text style
you choose; The anchor tag acts
as a backup against future
text changes by the author.
3. 文本片段 iOS 16.0.3 及更早版本与 16.0.3 及更早版本对比 iOS 16.1
页面正在加载中 iOS 16.0.3 及更早版本中,当打开使用文本片段格式化的 URL 但没有发生任何特殊情况时(下面留下 GIF)。 和 Safari 在 iOS 16.1,独特的 URL,格式化为突出显示网页上的特定文本,直接跳转到文章的该部分并突出显示文本(下面的右侧 GIF)。
- 千万不要错过: iOS 16.2 包含 39 个重大更改,您在更新之前需要了解这些更改 iPhone
不起作用 iOS 16.0.3 及更早版本(左)与进行中版本 iOS 16.1(右)。
4. 文本片段的使用示例
以下链接指向 Siri 的《哈利·波特》咒语列表,您将直接看到“揭示人类存在的魔法”对于第九个咒语。
Example of #:~:text=textStart
-----------------------------
#:~:text=the%20human%2Dpresence%2Drevealing%20spell
Link
----
https://gadgethacks.com/how-to/potter-spells-0384951#:~:text=the%20human%2Dpresence%2Drevealing%20spell
突出显示以下链接 第九咒语的整个段落 在枚举操作之前。 虽然与号 (%26) 和逗号 (%2C) 字符应进行百分比编码,但在大多数情况下,句点 (%2E)、连字符 (%2D) 和引号 (%22) 不需要进行百分比编码。
Examples of #:~:text=textStart,textEnd
--------------------------------------
#:~:text=%22Homenum,Friends%20app%2E
#:~:text="Homenum,Friends%20app.
Links
-----
https://gadgethacks.com/how-to/potter-spells-0384951#:~:text=%22Homenum,Friends%20app%2E
https://gadgethacks.com/how-to/potter-spells-0384951#:~:text="Homenum,Friends%20app.
例如,如果您复制下面以句点 (.) 结尾的链接,则可以将其粘贴 Safari 并让它发挥作用。 但是,当您通过“消息”共享它时,应用程序会识别该句点,将其作为消息正文的一部分分开,并将其从 URL 中删除。
#:~:text=textStart(左)| #:~:text=textStart,textEnd(右)
以下链接突出显示 整个第九咒语从章节标题到最后一个项目符号行的最后部分。
Examples of #:~:text=textStart,textEnd
--------------------------------------
#:~:text=9,action.
#:~:text=9,action%2E
Links
-----
https://gadgethacks.com/how-to/potter-spells-0384951#:~:text=9,action.
https://gadgethacks.com/how-to/potter-spells-0384951#:~:text=9,action%2E
现在如果我想链接到这些词 第14咒语中的“紧急联络” 我可以使用前缀和后缀部分从第一个实例跳转到第二个实例,而不是第一次出现的第 12 个咒语。 以下链接会有帮助。
Examples of #:~:text=prefix-,text,-suffix
-----------------------------------------
#:~:text=chosen-,emergency%20contacts,-.
#:~:text=chosen-,emergency%20contacts,-%2E
Links
-----
https://gadgethacks.com/how-to/potter-spells-0384951#:~:text=chosen-,emergency%20contacts,-.
https://gadgethacks.com/how-to/potter-spells-0384951#:~:text=chosen-,emergency%20contacts,-%2E
仅有的 以“chosen-”作为前缀- 如果不指定 – 后缀,我们也能到达那里。
Example of #:~:text=prefix-,text
--------------------------------
#:~:text=chosen-,emergency%20contacts
Link
----
https://gadgethacks.com/how-to/potter-spells-0384951#:~:text=chosen-,emergency%20contacts
#:~:text=textStart,textEnd(左)| #:~:text=前缀-,文本,-后缀 或 #:~:text=前缀-,文本(右)
但 跳过前缀并使用“.”作为后缀 让我们看到第 12 个咒语,因为这是第一个“紧急联系人”后跟句点的情况。
Examples of #:~:text=text,-suffix
---------------------------------
#:~:text=emergency%20contacts,-.
#:~:text=emergency%20contacts,-%2E
Links
-----
https://gadgethacks.com/how-to/potter-spells-0384951#:~:text=emergency%20contacts,-.
https://gadgethacks.com/how-to/potter-spells-0384951#:~:text=emergency%20contacts,-%2E
文本片段还可以与常规站点编码片段一起使用。 因此,如果文本片段中的文本发生更改,您仍然会被定向到页面上具有适当“id”属性的部分。 您可以使用下面的链接直接到达那里 哈利·波特指南中的第九个咒语是针对 Siri 的 并突出显示标题下的整个第一段。
Examples of #IDattribute:~:text=textStart
-----------------------------------------
#jump-9heysirihomenumrevelio:~:text=%22Homenum,Friends%20app%2E
#jump-9heysirihomenumrevelio:~:text=%22Homenum,Friends%20app.
Links
-----
https://gadgethacks.com/how-to/potter-spells-0384951#jump-9heysirihomenumrevelio:~:text=%22Homenum,Friends%20app%2E
https://gadgethacks.com/how-to/potter-spells-0384951#jump-9heysirihomenumrevelio:~:text=%22Homenum,Friends%20app.
#:~:text=文本,-后缀(左)| #IDattribute:~:text=textStart(右)
5. 如果文本片段不适合你
Safari 有一个实验性的“滚动到文本片段”功能,您可以从那时起启用该功能 iOS 15.4,但到目前为止它只对开发者有利。 前 iOS 在版本 16.1 中,它默认处于禁用状态,但现在默认处于启用状态。
如果您在使用 Safari 的实验性 WebKit 功能菜单时出现问题并意外禁用了“滚动到文本片段”,您可以通过“设置 ->”重新启用它。 Safari –> 高级 –> 实验功能 –> 滚动到文本片段。 您也可以滚动到列表底部并单击“全部重置为默认设置”,而不是打开它。
6. 格式化文本片段以供共享
从上面的语法中可以看出,如果您习惯对 URL 进行百分比编码,那么格式化一段文本以突出显示相对容易。 不然记忆起来有点复杂。
不幸的是,没有简单的方法来复制要突出显示的部分的 URL Safari 就像它在那里一样 Chrome。 在 Google Chrome 为了 iOS,您可以突出显示文本,然后从出现的上下文菜单中选择“创建链接”。 该选项不会出现在 Safari。
在中创建文本片段链接 Chrome 并与他人分享 WhatsApp。
您可以尝试在 Safari 中突出显示文本,然后单击共享按钮,但它不会对 URL 执行任何特殊操作,但会显示富文本预览 Apple 消息、电子邮件和注释等应用程序在引用块中突出显示文本。 当您从上下文菜单中使用“共享”时,仅复制文本。
解决方法 Apple 实现了一种使用快捷方式复制和共享文本片段的简单方法。 你可以尝试一下 分享文字片段 格式化 URL 的快捷方式 #:~:text=文本开始 编码见上文。 您想要添加的任何前缀、后缀或 TextEnd 都需要手动完成,直到有更好的链接可用。 也许当我有时间研究它时我会更新我的快捷方式,但欢迎您尝试一下。
- 链接 iCloud 链接: 分享文字片段