首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PreventDefault SweetAlert2

PreventDefault SweetAlert2
EN

Stack Overflow用户
提问于 2018-11-14 00:32:22
回答 1查看 354关注 0票数 1

我得到了这个函数,它覆盖了我的本机js警报:

代码语言:javascript
复制
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警报,它等待我单击OK按钮以继续。现在有了这个swal函数,它可以立即显示警报和重定向。有没有一种方法可以避免这种行为,并在不更改函数签名的情况下像本机警报一样工作?

EN

回答 1

Stack Overflow用户

发布于 2018-11-14 00:42:13

不同之处在于alert()是模态的。这意味着它会阻塞所有其他输入和输出,直到它被清除。甜蜜警报不是。

您可以通过使用回调函数使其以类似的方式运行,该回调函数是在单击甜蜜警报中的OK按钮时执行的。您可以通过将函数传递给alert(),然后在then()块中调用它来完成此操作,如下所示:

代码语言:javascript
复制
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');
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53285512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档