You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为选中文本生成Text Fragment(文本片段)链接?

关于Text Fragment链接生成的原生API问题

目前没有原生浏览器API可以直接构造符合规范的Text Fragment锚点字符串(即#:~:text=[prefix-,]textStart[,textEnd][,-suffix]格式的片段)。

你用window.getSelection().toString()实现的基础版本在复杂场景(比如页面存在重复文本、选中内容跨多个DOM元素、选中文本是长段落的一部分)下失效,核心原因是:window.getSelection()只能获取选中的纯文本内容,而Text Fragment的精准定位依赖**前缀(prefix)、后缀(suffix)**来区分重复内容,同时需要准确识别选中文本在DOM中的起始和结束边界(而非仅纯文本)。

要实现可靠的Text Fragment生成,需要自行处理选中范围的DOM节点:

  • 遍历选中范围的起始和结束节点,提取选中文本前后的上下文内容作为prefix和suffix
  • 按照语法规则拼接textStart、textEnd、prefix、suffix,并做URL编码
  • 处理跨元素选中、重复文本等特殊场景,确保生成的片段能唯一定位到选中内容

内容的提问来源于stack exchange,提问作者Luc Gagan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 15:08:12