让我解释一下:当您在JS中调用alert()时,该警报下面的所有代码都将停止,并且当您单击Ok时,该代码将返回工作。

我使用以下代码制作了自己的自定义提醒:

function cAlert()
{
var bOn;
this.show = function (content)
{
    bOn = true;
    document.write('<div id="turnOffLight"></div><div id="cAlertBox"><div id="cAlertImageBox"><img style="position: absolute; top: 54%; left: 50%; margin-top: -32px; margin-left: -32px;" src="Images/Vectors/1429744831_678136-shield-warning-64.png" alt=""/> </div><div id="cAlertContentBox"> </div><div id="cAlertButtonBox"><input id="cAlertButtonStyle" type="button" value="OK" onclick="cAlert.ok()" /></div></div>');
    $("#cAlertContentBox").html(content);
    $("#cAlertBox").show();
    $("#turnOffLight").fadeIn("fast");

    var div = document.getElementById('cAlertBox').offsetWidth;
    var res = -Math.abs(div / 2);
    document.getElementById('cAlertBox').style.marginTop = res + "px";
};
this.ok = function ()
{
    $("#cAlertBox").hide();
    $("#turnOffLight").fadeOut("medium");
    bOn = false;
};
}

在其他页面中:
<head>
    <script src="Scripts/jQuery_1.11.2.js" type="text/javascript"></script>
    <script src="Scripts/cAlertScript.js" type="text/javascript"></script>
    <script type="text/javascript">var cAlert = new cAlert();</script>
</head>

但是我有一个问题,在登录页面中,调用cAlert()之后,我将其称为:
echo "<script>javascript:history.go(-1)</script>";

返回到最后一页,当我习惯使用alert()时,只有在用户单击ok之后,浏览器才返回到最后一页,但是使用cAlert,浏览器已经返回到了最后一页。

我想要的是用户需要单击“确定”按钮以使代码继续作为alert()。

最佳答案

cAlert.show(content)更改为cAlert.show(content, success)
cAlert.ok()更改为cAlert.ok(' + success + ')
this.ok = function ()更改为this.ok = function (success),最后将success();添加到ok()函数的末尾。

单击cAlert中的按钮时,它将调用success

现在无需调用cAlert.show("text"),而是需要调用cAlert.show("text", function() { javascript:history.go(-1); } )

因此,您的代码现在应该是:

function cAlert()
{
var bOn;
this.show = function (content, success)
{
    bOn = true;
    document.write('<div id="turnOffLight"></div><div id="cAlertBox"><div id="cAlertImageBox"><img style="position: absolute; top: 54%; left: 50%; margin-top: -32px; margin-left: -32px;" src="Images/Vectors/1429744831_678136-shield-warning-64.png" alt=""/> </div><div id="cAlertContentBox"> </div><div id="cAlertButtonBox"><input id="cAlertButtonStyle" type="button" value="OK" onclick="cAlert.ok(' + success + ')" /></div></div>');
    $("#cAlertContentBox").html(content);
    $("#cAlertBox").show();
    $("#turnOffLight").fadeIn("fast");

    var div = document.getElementById('cAlertBox').offsetWidth;
    var res = -Math.abs(div / 2);
    document.getElementById('cAlertBox').style.marginTop = res + "px";
};
this.ok = function (success)
{
    $("#cAlertBox").hide();
    $("#turnOffLight").fadeOut("medium");
    bOn = false;

    success();
};
}

和:
<head>
    <script src="Scripts/jQuery_1.11.2.js" type="text/javascript"></script>
    <script src="Scripts/cAlertScript.js" type="text/javascript"></script>
    <script type="text/javascript">
        var cAlert = new cAlert();
        cAlert.show("text", function() { javascript:history.go(-1); } );
    </script>
</head>

09-11 13:44