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

如何实现跳转至第三方网页的指定ID锚点对应区块?

问题根因

你当前的写法完全符合锚点跳转的标准规范,跳转后无法滚动到指定区块,基本都是目标站点gothere.com本身的逻辑导致:

  • 目标站点是单页应用(SPA),页面内容由JS动态渲染,浏览器解析锚点时,id="rightHere"的元素还没挂载到DOM上
  • 目标站点主动禁用了默认锚点滚动逻辑
  • 跨域安全策略限制了源站对第三方页面行为的操控权限

可行方案

方案1:可和目标站点侧协商配合的场景(最稳妥)

源站跳转时额外携带查询参数标识要滚动的元素id,目标站点增加对应的滚动处理逻辑即可。

源站(mehere.com)跳转代码

// 按钮点击跳转逻辑
function Redirect() {
  // 同时带锚点+查询参数,兼容目标站后续适配
  window.location.href = "https://www.gothere.com?scrollTarget=rightHere#rightHere";
}

目标站(gothere.com)新增处理逻辑

// 等待页面所有资源/动态内容加载完成后执行滚动
window.addEventListener('load', () => {
  const urlParams = new URLSearchParams(window.location.search);
  const targetId = urlParams.get('scrollTarget');
  if (!targetId) return;
  const targetEle = document.getElementById(targetId);
  // 匹配到目标元素后执行滚动
  targetEle?.scrollIntoView({
    behavior: 'auto', // 需要平滑滚动可以改成smooth
    block: 'start'
  });
});

方案2:无法和目标站点配合的场景

如果没有权限修改目标站点的代码,首先可以先做基础校验:

  • 直接在浏览器地址栏输入完整带锚点的地址https://www.gothere.com#rightHere,确认是否能滚动到对应区块
  • 核对目标页面rightHere的id拼写、大小写完全匹配,确认该元素不是动态生成的shadow DOM元素
    如果直接访问带锚点的地址也无法滚动,那么源站侧没有任何合规的JS方案可以实现需求——浏览器的跨域安全规则禁止源站点操作第三方跳转页面的DOM和交互行为,强行尝试的方案都会被浏览器拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:06:04