我试图用SweetAlert覆盖javascript确认框。
我也对此进行了研究,但找不到合适的解决方案。

我正在这样使用confirm

if (confirm('Do you want to remove this assessment') == true) {
   //something
}
else {
   //something
}


我正在使用它来覆盖

 window.confirm = function (data, title, okAction) {
                swal({
                    title: "", text: data, type: "warning", showCancelButton: true, confirmButtonColor: "#DD6B55", confirmButtonText: "Yes", cancelButtonText: "No", closeOnConfirm: true, closeOnCancel: true
                }, function (isConfirm) {
                    if (isConfirm)
                    {
                        okAction();
                    }
                });
                // return proxied.apply(this, arguments);
            };


现在,请确认框已替换为sweetalert。
当用户单击Yes按钮时,应调用确认框的OK action。但这不是

并且在上面的代码中发生了错误Uncaught TypeError: okAction is not a function

请建议我,我应该为覆盖确认框做些什么。

最佳答案

由于自定义实现不是阻塞调用,因此您需要像这样调用它

confirm('Do you want to remove this assessment', function (result) {
    if (result) {
        //something
    } else {
        //something
    }
})


window.confirm = function (data, title, callback) {
    if (typeof title == 'function') {
        callback = title;
        title = '';
    }
    swal({
        title: title,
        text: data,
        type: "warning",
        showCancelButton: true,
        confirmButtonColor: "#DD6B55",
        confirmButtonText: "Yes",
        cancelButtonText: "No",
        closeOnConfirm: true,
        closeOnCancel: true
    }, function (isConfirm) {
        callback(isConfirm);
    });
    // return proxied.apply(this, arguments);
};

关于javascript - 覆盖JavaScript确认框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30449990/

10-11 23:46