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

使用NextJS <Link>组件移动端需双击跳转的问题求助

解决Next.js 移动端双击跳转问题

针对Pages Router(Next.js 12及以下)

你当前错误地将target="_blank"、rel="noopener noreferrer"放在了<Link>组件上,而Pages Router的<Link>本身不支持这些属性,需将这些属性移到内部包裹的<a>标签中,同时保留passHref:

<Link href="/methodology" passHref>
  <a
    target="_blank"
    rel="noopener noreferrer"
    className="w-auto text-right text-sm text-riskfactor-400 underline underline-offset-2 hover:text-riskfactor-300 md:w-[345px]"
    onClick={() =>
      handleLinkAnalytics(
        'How is Flood Calculated?',
        '/methodology',
      )
    }
  >
    How is Flood Calculated?
  </a>
</Link>

针对App Router(Next.js 13+)

App Router的<Link>已原生支持target、rel属性,只需确保自定义onClick事件不阻止默认跳转行为:

<Link
  href="/methodology"
  target="_blank"
  rel="noopener noreferrer"
  className="w-auto text-right text-sm text-riskfactor-400 underline underline-offset-2 hover:text-riskfactor-300 md:w-[345px]"
  onClick={(e) => {
    handleLinkAnalytics('How is Flood Calculated?', '/methodology');
    // 不要调用e.preventDefault(),保证默认跳转逻辑正常执行
  }}
>
  How is Flood Calculated?
</Link>

通用排查项

  • 检查页面是否添加了正确的viewport meta标签,避免移动端300ms点击延迟:
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    
  • 排查CSS样式中是否存在pointer-events: none、touch-action: none等干扰触摸事件的属性。
  • 确认handleLinkAnalytics函数无异步阻塞逻辑,防止延迟默认跳转触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 00:07:29