我得到了覆盖我的本机js警报的函数:
function alert(message, title = 'Test', type = 'info')
{
// event.preventDefault();
if(typeof(swal) != 'undefined') {
swal({
html: message,
title: title,
type: type,
width: '24rem',
}).then((result) => {
return result.value;
});
}
else {
alert(message);
}
}
在我的PHP函数结束时,我有一个警报(“成功”),然后重定向到另一个页面。有了本机JS警报,它等待我单击“确定”按钮继续。现在有了此swal函数,它可以显示警报并立即重定向。有没有办法避免这种行为并像本机警报一样操作,而无需更改功能签名?
答案 0 :(得分:0)
区别在于alert()
是模态的。这意味着它将阻止所有其他输入和输出,直到被关闭为止。 Sweetalert不是。
通过使用在Sweetalert中单击“确定”按钮时执行的回调函数,可以使其行为类似。您可以通过将函数传递到alert()
,然后在then()
块中调用它来实现,就像这样:
function alert(message, title = 'Test', type = 'info', callback) {
if (typeof(swal) != 'undefined') {
swal({
html: message,
title: title,
type: type,
width: '24rem',
}).then(() => {
callback && callback();
});
} else {
alert(message);
callback && callback();
}
}
// example usage:
alert('foo bar', 'title', 'info', function() {
window.location.assign('somewhere_else.php');
});