由于项目需要使用了showModelDialog用来弹出窗口,然后接收其返回值程序继续执行,但发现其有个缺点即“模态”弹出后焦点不可切换,后来想到使用showModelessDialog来替换,但发现js代码不会等弹出窗口操作完即接着往下执行代码,请问各个可否遇到过这种问题,是否什么方法可以替代showModelDialog呢?小弟新手望大家帮忙出出主意!

解决方案 »

  1.   

    没有遇到过啊,自己顶下,因为使用了mxGraph,简单的用js控制了下流程,遇到此问题,那位大侠使用过mxGraph可以交流下!
      

  2.   

    如果不使用showModelDialog窗口,而又需要使JS暂停执行
    JS只能通过window.setInterval或window.setTimeout模拟,不停的循环来判断执行的时机是否成熟
    没有试过showModelessDialog能否获取到窗口的关闭事件,如果不行,LZ可以用层来模拟
      

  3.   

    widow.open代开一个非模对话框,能满足需求不?
      

  4.   

    同意,window.open也不会等待的。setTimeout模拟吧
      

  5.   

    对话页面操作完成后:执行这个JS方法
    function fselect(s,f,i,n,m){
    var o=new Object()
    o.code=i;
    window.returnValue=o;
    window.close();
    }
    主页面加这么1个判断
    if(o)//如果没有执行过fselect这个方法,就返回false
    {
    document.form1.dpcode.value=o.code;
    }
    这样就可以判断对话页面是否正常操作了
      

  6.   

    这个跟ajax调用的情况有些相同的地方,ajax发出请求后,也是可以立即继续后面的代码的。按照这个思路,你可以把弹出子窗口作为最后一个动作,并提供一个回调函数让子窗口关闭的时候调用。这样就可以保证代码的连续性了。