javascript中有几个模态阻塞对话框需要模拟分别是:alert()prompt()confirm()showModalDialog()
这些对话框的共同特点都是执行代码后,包含该代码的代码段都要停止或者说阻塞,等操作返回时,被阻塞的代码继续执行,类似断点。
通常,我们只所以要进行模拟,目的在于改善用户界面体验,或者说我们不想使用浏览器提供的那种默认的对话框样式,所以,我们想使用div层来进行模拟。
例如:当执行到test函数的第2行时,我们需要阻塞该函数的运行,直到用户执行了模拟弹出框的对应操作。
[code="java"]
function myconfirm(){
/**some code here*/
}
function test(){
var a=1;
if(myconfirm("你确定要测试确认对话框吗,请选择...")){ a=2;}else{a=2;}
if(a==2){alert("成功")}else{alert("失败")}
}
[/code]
ps:实现非阻塞的模拟是比较容易的,但非阻塞的对话框对原有的代码改动非常大,因为他只能使用回调函数的方式来实现。