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

如何在SwalFire(SweetAlert)弹出框中实现音频播放功能

完全可以实现该效果,你可以借助SweetAlert2提供的didOpen生命周期钩子,在弹窗触发渲染的同时播放音频,无需额外植入音频文件到弹窗结构中,实现逻辑非常简单。

修改后的示例代码如下:

// 提前定义好音频文件地址,替换成你自己的音效路径即可
const notifyAudio = new Audio('/audio/notify.mp3');

Swal.fire({
  title: 'Custom width, padding, background.',
  width: 600,
  padding: '3em',
  background: '#fff url(/images/trees.png)',
  backdrop: `
    rgba(0,0,123,0.4)
    url("/images/nyan-cat.gif")
    left top
    no-repeat
  `,
  // 新增弹窗打开后的回调,触发音频播放
  didOpen: () => {
    notifyAudio.play().catch(err => {
      // 可在这里处理播放失败的场景,比如浏览器拦截自动播放
      console.log('音频播放失败:', err)
    });
  }
})

相关注意事项:

  • 受浏览器自动播放策略限制,如果弹窗是页面加载后主动弹出、没有用户交互行为触发的话,音频播放可能会被浏览器拦截,若弹窗是用户点击、输入等交互动作触发的则不存在该问题。
  • 如果你需要把音频控件展示在弹窗内供用户手动控制,可以在配置项中新增html字段植入<audio>标签,示例如下:
Swal.fire({
  title: '带音频的弹窗',
  // 直接植入带自动播放属性的audio标签,也可以加上controls属性显示控件
  html: '<audio src="/audio/notify.mp3" autoplay controls />',
  // 其他原有配置保持不变即可
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:15:04