让我来解释一下:当您在JS中调用alert()时,所有在alert下面的代码都将停止运行,当您点击“确定”后,代码将继续执行。
我使用以下代码创建了自己的自定义警报框:
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()时,要返回到上一页,只有在用户点击确定后,浏览器才会返回到上一页。但是使用cAlert,浏览器已经返回到上一页。
我希望的是,用户需要点击“确定”按钮,代码才能继续,就像alert()一样。
alert()
、confirm()
和prompt()
之外,在JS中这是不可能的。只有它们才能停止执行线程。当然,除非你想编写自己的JavaScript引擎,也可以在其他函数上停止执行... :P 无论如何,对于这个问题的精心撰写给予+1。 - Scimonster