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

Nuxt 3中navigateTo设置target="_blank"无法打开新窗口求助

解决Nuxt 3.0.0中navigateTo无法新窗口打开第三方网站的问题

问题原因

你直接在<script setup>顶层调用navigateTo的方式,属于页面加载时自动执行的代码,并非用户主动触发的交互操作(比如点击按钮)。出于安全策略,浏览器会拦截这种非用户触发的弹窗请求,导致代码无法生效。另外,Nuxt 3早期版本(如3.0.0)的navigateTo的open选项在非交互场景下的兼容性也可能存在问题。

解决方案

方案1:在用户交互回调中使用navigateTo

将跳转逻辑绑定到用户触发的事件(比如按钮点击)中,确保在浏览器允许的交互上下文里执行:

<template>
  <button @click="openExternalSite">打开Nuxt官网</button>
</template>

<script setup lang="ts">
const openExternalSite = async () => {
  await navigateTo('https://nuxt.com', {
    open: {
      target: '_blank'
    }
  })
}
</script>

方案2:直接使用window.open(更稳定的外部链接跳转方式)

对于第三方外部链接,直接使用浏览器原生的window.open在用户交互中调用,兼容性和稳定性更好:

<template>
  <button @click="openExternalSite">打开Nuxt官网</button>
</template>

<script setup lang="ts">
const openExternalSite = () => {
  window.open('https://nuxt.com', '_blank')
}
</script>

注意事项

  • 无论使用哪种方式,都必须确保跳转逻辑在用户主动触发的事件回调中执行,否则浏览器会拦截弹窗。
  • 如果你坚持使用navigateTo,建议将Nuxt升级到较新的稳定版本,修复早期版本可能存在的bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 05:02:37