最近用div实现了网页上的模态
但是在客户程序调用时,如何实现向桌面程序开发中的模态一样,即当前的程序流程挂起,等待用户具体操作,而进行下一步程序的执行。
我目前想到的方法是这样的
//客户程序调用,MessageBox为我自己写的javascript包
var msgBox = new MessgeBox(okEventHandle,cancelEventHandle);
msgBox.show('您确定要删除吗?');//当点击确定执行的操作
function okEventHandle()
{
  //具体实现
   ...
}//当点击取消执行的操作
function cancelEventHandle()
{
  //具体实现
  ...
}//////////////////////////////////////////////////////////////////////////////现在的疑问是怎样实现形如下面这种方式的调用,当MessageBox的状态show的时候,javascript程序流程挂起等待用户操作
if(MessageBox("您确定要删除吗?") == MessageBox.OK)
{
   //点击确定执行的操作
}
else
{
   //单击取消执行的操作
}求达人不吝赐教!谢谢!

解决方案 »

  1.   

    用confirm可以轻松实现,干嘛搞那么麻烦?!
    if (confirm("Are you right?"))
    {
        alert("OK OK");
    }
    else
    {
        alert("KO~~~");
    }
      

  2.   

    如果按照lz滴方式,
    俺想应该分别定义OK和Cancel按钮的onclick事件函数!
    而不是程序流程挂起,至少俺还不知道js中如何挂起?!
    if(MessageBox("您确定要删除吗?") == MessageBox.OK) 

        //点击确定执行的操作 

    else 

        //单击取消执行的操作 
    }
      

  3.   

    alert/confirm/prompt/IE showModalDialog都是模态的
      

  4.   

    关注楼主要自定义 alert/confirm/prompt?
      

  5.   

    我就是不想用alert或showModalDialog之类的东东,我做的是一个web2.0的网页,相通过ajax实现用户更平滑的使用。
    用事件的方法,我以实现,程序开头我就是这么做的
    var   msgBox   =   new   MessgeBox(okEventHandle,cancelEventHandle); 
    在这里传入了okEventHandel和cancelEventHandle两个回调函数,这样可以实现用户选择不同按钮执行后执行不同的函数,但在客户程序调用的时候,会造成逻辑代码的分离,不适为最佳方式!我的疑问是,是否有类似挂起等待这样的实现方式,谢谢!
    关注ing!
      

  6.   

    var       msgBox       =       new       MessgeBox(okEventHandle,cancelEventHandle);  
    至少少了msgTitle参数网上常用mask方式来模拟,与真正意义上的挂起相差很大。
      

  7.   

    将你的模拟 改为showModalDialog  这样就有模态效果了
      

  8.   

    同意斑竹滴方案:div遮罩 + 按钮点击事件!至少这是可以走通滴一条路!技术是死滴,人是活滴,哈还有lz说“在客户程序调用的时候,会造成逻辑代码的分离,不适为最佳方式!”
    to lz
    1 很可能是设计问题!
    2 最佳方式是“可实现”方案中最适合使用环境滴一种方式!
      

  9.   

    定义一个函数remsg()
    function remsg(re){
    switch(re){
    case "0": 
    //当点击确定执行的操作 
    break;
    case "1":
    //当点击取消执行的操作 
    break;
    }
    }
    在这里把定义的remsg当参数传过去:
    var msgBox = new MessgeBox(okEventHandle,cancelEventHandle,remsg); 
    msgBox.show('您确定要删除吗?'); function okEventHandle() 

      remsg('0');
    } //当点击取消执行的操作 
    function cancelEventHandle() 

      remsg('1');