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

如何在Sweet Alert中实现新窗口跳转及URL新窗口打开?

嘿,这个需求我之前做项目时刚好碰到过,给你分享两种实用的实现方式,不管是点击弹窗按钮跳转,还是在弹窗逻辑里直接打开指定URL到新窗口都能搞定:

方法1:点击Sweet Alert按钮后跳转至新窗口

这是最常见的场景——用户点击弹窗里的确认/操作按钮后,打开新窗口跳转指定URL。以目前主流的SweetAlert2为例,你可以在按钮的回调函数里使用原生JS的window.open()方法:

Swal.fire({
  title: '确认跳转吗?',
  text: '点击确认将在新窗口打开目标页面',
  icon: 'question',
  showCancelButton: true,
  confirmButtonText: '确认跳转',
  cancelButtonText: '取消'
}).then((result) => {
  // 当用户点击确认按钮时
  if (result.isConfirmed) {
    // 第一个参数是目标URL,第二个是窗口名称(可自定义),第三个是窗口配置(可选)
    window.open('https://你的目标地址.com', '_blank', 'width=800,height=600');
  }
});

这里要注意:window.open()的第三个参数可以自定义新窗口的尺寸、位置等属性,如果不需要特殊配置,直接传'_blank'就行,浏览器会用默认新窗口打开。

方法2:弹窗显示时直接打开新窗口

如果你需要弹窗弹出的同时就自动打开新窗口(不过这种场景要谨慎,容易被浏览器的弹窗拦截机制阻止),可以把window.open()放在弹窗的didOpen钩子函数里:

Swal.fire({
  title: '正在打开新窗口...',
  text: '如果没弹出,请检查浏览器拦截设置',
  icon: 'info',
  didOpen: () => {
    // 弹窗打开后立即触发新窗口跳转
    window.open('https://你的目标地址.com', '_blank');
  }
});

⚠️ 重要提醒:浏览器通常会拦截非用户主动触发的弹窗,所以第一种通过按钮点击触发的方式成功率最高,第二种自动触发的方式大概率会被拦截,除非用户已经把你的网站加入了弹窗白名单。

另外,如果用的是旧版的SweetAlert(不是SweetAlert2),写法类似,只是API稍有不同:

swal({
  title: '确认跳转?',
  text: '点击确认打开新窗口',
  type: 'warning',
  showCancelButton: true,
  confirmButtonText: '确认',
  cancelButtonText: '取消'
}, function(isConfirm) {
  if (isConfirm) {
    window.open('https://你的目标地址.com', '_blank');
  }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:20:15