覆盖javascript确认框

时间:2015-05-26 05:16:23

标签: javascript jquery sweetalert

我正在尝试使用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

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

1 个答案:

答案 0 :(得分:1)

由于自定义实现不是阻止调用,因此您需要将其称为

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);
};