定制一个状态变量,定时监视它。var state="normal"
var timer;
...
PopDialog(x)
state="locked"
timer=setInterval("if (state=='unlocked') {state='normal';clearInterval('timer');alert(a)}",100)在PopDialog()里面设置a的值,并设置state="unlocked"不过这并不是什么好主意。还是改程序流程好一点。

解决方案 »

  1.   

    先谢谢!调用PopDialog(x)来模拟showModalDialog窗口并不是只在一个地方出现,我想的是做一个替代showModalDialog的通用方法,只在需要showModalDialog的地方就用PopDialog来代替,不想在PopDialog函数体外写多余的语句。
      

  2.   

    你可以用定时器来做。是setTimeout来不停地检测状态值,满足就执行某些代码
      

  3.   

    设置setTimeout不能达到我想要的效果,因为在setTimeout延迟的时间里,PopDialog()的下一句已经开始执行了,没达到我想要的“使‘窗口’关闭之前,不执行下一行语句”,请你们才帮帮忙想一想,如果绝对不可能实现,也麻烦告知,免得我浪费太多宝贵的时间。
      

  4.   

    The popp is very primitive, you really do not have much control on how a popup works, try somethiing like<HTML>
    <HEAD>
    <TITLE>Popup Custom Navigation Menu Sample</TITLE>
    <SCRIPT LANGUAGE="JScript">
    var oPopup;function window.onload()
    {
     oPopup = window.createPopup();
     oPopup.document.body.innerHTML = oContextHTML.innerHTML;
     oPopup.document.all.btn1.onclick=function(){test(oPopup.document.all.txt1.value)};
     document.onkeypress=function(){oPopup.document.all.txt1.value += String.fromCharCode(event.keyCode)};
    }function showPopup()
    {
        var lefter = event.offsetX+10;
        var topper = event.offsetY+10;    oPopup.show(lefter, topper, 200, 65, document.body);
    }function test(x)
    {
      alert(x);
    }</SCRIPT>
    </HEAD>
    <BODY oncontextmenu="showPopup(); return false;">
    right click any where
    <DIV ID="oContextHTML" STYLE="display:none;">
        <input type="type" id="txt1" value="123"><input type="button" id="btn1" value="set">
    </DIV>
    </BODY>
    </HTML>
      

  5.   

    可是window.createPopup();要求的版本太高了点