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

如何使用纯JavaScript检测#:~:text=文本片段?

检测谷歌文本片段链接访问的纯JS方案

当用户通过谷歌精选摘要的链接进入页面时,地址栏里的#:~:text=...属于文本片段标识符(Text Fragments),它和传统的锚点哈希(#)不是同一类内容,浏览器会单独解析并高亮对应文本,不会把这部分内容纳入window.location.hash或document.URL的常规哈希处理中,所以你之前用那两个属性拿不到是正常的。

纯JS完全可以实现检测,用专门的API即可:

  • 使用window.location.fragmentDirective属性,它会返回一个FragmentDirective对象,其中的text字段就是文本片段的具体信息(包含起始文本、结束文本或精确匹配文本)。

示例代码:

// 检测是否存在文本片段
if (window.location.fragmentDirective) {
  const textFragment = window.location.fragmentDirective.text;
  console.log("检测到文本片段:", textFragment);
  // 根据片段类型做不同处理
  if (textFragment.start && textFragment.end) {
    console.log(`起始匹配文本:${textFragment.start},结束匹配文本:${textFragment.end}`);
  } else if (textFragment.exact) {
    console.log(`精确匹配文本:${textFragment.exact}`);
  }
} else {
  console.log("未检测到文本片段");
}

注意:这个API目前仅在Chrome、Edge等Chromium内核浏览器中支持,若需要兼容其他浏览器,可以添加简单的降级判断逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 10:18:32