Skip to content

外链导航(新窗口)

当你希望链接在浏览器新标签页或新窗口打开时,使用 _viewOutside: true

ts
const opened = await tabsManager.openTab("https://example.com", {
  _viewOutside: true,
  _viewOutsideProps: {
    target: "_blank",
    features: "noopener,noreferrer",
  },
});

行为说明

  • 内部调用 window.open
  • 不会创建 VueTabRouter 内部标签页
  • 返回值为 Promise<Window | null>

如果浏览器拦截弹窗,返回值可能是 null

适用场景

  • 第三方系统跳转
  • 文档、报表、监控等外部地址
  • 避免 iframe 跨域限制的页面

TIP

对链接页面,如果不设置 _viewOutside,则会走“内联 iframe 页面”模式,见 内联页面导航

与内部 iframe 的区别

打开方式是否创建内部 tab是否受 iframe 跨域限制适合场景
不传 _viewOutside希望在工作台内嵌入展示。
_viewOutside: true第三方系统、报表、监控页面、下载页。

安全建议

新窗口打开外部链接时,建议设置 noopener,noreferrer

ts
await tabsManager.openTab("https://example.com", {
  _viewOutside: true,
  _viewOutsideProps: {
    target: "_blank",
    features: "noopener,noreferrer",
  },
});

如果链接来自用户输入,需要先做白名单校验,避免把不可信 URL 直接交给 window.open