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:实现非阻塞的模拟是比较容易的,但非阻塞的对话框对原有的代码改动非常大,因为他只能使用回调函数的方式来实现。
js没有线程,就更没有线程相关控制,要实现你要的效果只能模拟,
个人认为使用回调函数完全可以了
请问楼主用于什么样的场景?
具体没有更深入的研究,但是JavaScript是可以做断点调试的,像firebug,或许你可以研究下firebug的源代码,看他是如何做断点的。另外,google下 JavaScript 阻塞。看到的文章或许对你有帮助
找到了。使用JavaScript函数劫持方式可以实现这样的效果。
var _alert = alert;
window.alert = function(s) {
if (confirm("是否要弹框框,内容是\"" + s + "\"?")) {
_alert(s);
}
}
大意如此。你可以自己搜索一下JavaScript 函数劫持 来获得更多的相关文章。