SweetAlert2 sweetalert2 11.26.25
SweetAlert2 是高颜值、可高度定制的弹窗库,一行 Swal.fire() 即可替代原生 alert / confirm / prompt。本页基于 Bootstrap 5.3.8 演示。
官方对照(vs 官方 Modal)
Bootstrap 官方提供固定结构的 Modal 组件,适合嵌入复杂内容;SweetAlert2 用一行 JS 调用生成弹窗,更适合替代浏览器原生弹窗。
官方已有 官方已有 Modal 弹窗组件,本库是其轻量替代方案
| 对比维度 | Bootstrap 官方 Modal | SweetAlert2 |
|---|---|---|
| 能力定位 | 结构化弹层容器,需手写 HTML 模板 | 一行 JS 调用生成弹窗,替代原生 alert/confirm/prompt |
| 核心特性 | 居中弹层、大小档、远端内容、垂直居中 | 图标、输入框、确认/取消按钮、Promise 结果、定时器与队列 |
| 依赖与体积 | bootstrap bundle 已含,无额外体积 | 单个 dist 文件约 200KB 未压缩,无任何依赖 |
| 样式定制 | Modal 类与 Sass 变量 | background、customClass、按钮色等配置项 + CSS 覆盖 |
| 适用场景 | 复杂表单、长内容、嵌入其他组件的弹层 | 消息提示、确认框、快速表单输入 |
引入方式
通过 jsDelivr 固定版本引入单文件 sweetalert2.all.min.js:无需额外 CSS、无任何依赖(不依赖 jQuery),加载后全局暴露 Swal。本页固定 11.26.25。
引入代码
<!-- SweetAlert2 单文件(含 CSS,无依赖) -->
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11.26.25/dist/sweetalert2.all.min.js"></script>
基础弹窗
调用 Swal.fire({...}) 即可弹出带图标的提示框。
HTML 示例
<button type="button" id="btnSwalBasic">弹出欢迎弹窗</button>
<script>
document.getElementById('btnSwalBasic').addEventListener('click', function () {
Swal.fire({
title: '你好!',
text: '这是一个 SweetAlert2 弹窗',
icon: 'success',
confirmButtonText: '好的'
});
});
</script>
确认框
加 showCancelButton: true 成为确认框;.then(result => ...) 中通过 result.isConfirmed 拿到用户的真实选择,并把结果展示在下方。
尚未操作:点击按钮弹出确认框,你的选择会显示在这里。
HTML 示例
<button type="button" id="btnSwalConfirm">删除一条记录</button>
<p id="confirmResult"></p>
<script>
document.getElementById('btnSwalConfirm').addEventListener('click', function () {
Swal.fire({
title: '确认删除这条记录?',
text: '删除后不可恢复',
icon: 'warning',
showCancelButton: true,
confirmButtonText: '删除',
cancelButtonText: '取消'
}).then(function (result) {
if (result.isConfirmed) {
document.getElementById('confirmResult').textContent =
'你点击了「删除」,记录已删除';
Swal.fire('已删除', '', 'success');
} else {
document.getElementById('confirmResult').textContent =
'你点击了「取消」,操作已取消';
}
});
});
</script>
表单弹窗
配置 input: 'text' 即成为输入弹窗,result.value 是用户输入的内容;inputValidator 可做必填校验。
尚未操作:输入昵称后结果会显示在这里。
HTML 示例
<button type="button" id="btnSwalForm">填写昵称</button>
<p id="formResult"></p>
<script>
document.getElementById('btnSwalForm').addEventListener('click', function () {
Swal.fire({
title: '请输入昵称',
input: 'text',
inputPlaceholder: '例如:豆豆',
showCancelButton: true,
confirmButtonText: '保存',
cancelButtonText: '取消',
inputValidator: function (value) {
if (!value.trim()) return '昵称不能为空';
}
}).then(function (result) {
if (result.isConfirmed) {
document.getElementById('formResult').textContent =
'保存成功,昵称:' + result.value;
}
});
});
</script>