在弹出层后. return false然后 在层的按钮事件里,继续.

解决方案 »

  1.   

    怎么return false
    讲清楚点,或给出代码
    分不够我再加
      

  2.   

    function getStr()
    {
        var str = window.prompt("请输入", "");
        while (str == "" || str == null)
        {
             alert("不能为空");
             str = window.prompt("请输入", "");
        }
    }
      

  3.   

    我这个是HTML DIV做的弹出层
    用途相当prompt,但不是prompt
      

  4.   

    使用回调的写法。function getContent(callback){
      somebutton.onclick=function(){callback(sometext.value);};
    }
    ...
    getContent(
      function(v){alert(v);}
    );
      

  5.   

    思路是:采用回调机制,用div模拟的prompt层的确定按钮被点击后执行后继的操作
    另外:自制的div层要模拟prompt这样的模态窗口时,即层出现时用户只能在该层上操作,而无法再操作页面上其他部分,因此,要考虑使用页面掩码页技术
    demo代码:
    a.html
    ------------------------------------------------------------------
    <html>
    <script language=javascript>
    function demo()
    {
    showPageMask();
    showMyPrompt("callbackFunction");
    }
    var g_my_prompt_div = null;
    function showMyPrompt( callbackfunc )
    {
    g_my_prompt_div = document.createElement("<div style=position:absolute;top:200;left:300;width:100;height:50;background-color:#cccccc></div>");
    g_my_prompt_div.innerHTML = "<input id=userinput value=请您输入数据><input type=button value=确定 onclick='myPromptSubmit(\""+callbackfunc+"\")'>";
    document.body.appendChild(g_my_prompt_div);
    }
    function myPromptSubmit( callbackfunc )
    {
    var result = document.all.userinput.value;
    document.body.removeChild(g_my_prompt_div);
    document.body.removeChild(g_page_mask);
    eval( callbackfunc+"(\""+result+"\")" );
    }
    function callbackFunction( result )
    {
    alert("user input: "+result);
    }
    var g_page_mask = null;
    function showPageMask()
    {
    g_page_mask = document.createElement("<div style=\"position:absolute;top:0;left:0;width:"+document.body.clientWidth+";height:"+document.body.clientHeight+"\"></div>");
    document.body.appendChild(g_page_mask);
    g_page_mask.innerHTML = "<iframe style=\"FILTER:Alpha(opacity=20);width:100%;height:100%\" onclick=alert()></iframe>";
    }
    </script>
    <body>
    hello fuWaer<br>
    <input type=button value="click me" onclick=demo()>
    </body>
    </html>
    ------------------------------------------------------------------
      

  6.   

    <html>
    <body>
    hello fuWaer<br>
    </body>
    <script language=javascript>
    function demo()
    {
    showPageMask();
    showMyPrompt("callbackFunction");
    alert("!");
    }
    var g_my_prompt_div = null;
    function showMyPrompt( callbackfunc )
    {
    g_my_prompt_div = document.createElement("<div style=position:absolute;top:200;left:300;width:100;height:50;background-color:#cccccc></div>");
    g_my_prompt_div.innerHTML = "<input id=userinput value=请您输入数据><input type=button value=确定 onclick='myPromptSubmit(\""+callbackfunc+"\")'>";
    document.body.appendChild(g_my_prompt_div);
    }
    function myPromptSubmit( callbackfunc )
    {
    var result = document.all.userinput.value;
    document.body.removeChild(g_my_prompt_div);
    document.body.removeChild(g_page_mask);
    eval( callbackfunc+"(\""+result+"\")" );
    }
    function callbackFunction( result )
    {
    alert("user input: "+result);
    }
    var g_page_mask = null;
    function showPageMask()
    {
    g_page_mask = document.createElement("<div style=\"position:absolute;top:0;left:0;width:"+document.body.clientWidth+";height:"+document.body.clientHeight+"\"></div>");
    document.body.appendChild(g_page_mask);
    g_page_mask.innerHTML = "<iframe style=\"FILTER:Alpha(opacity=20);width:100%;height:100%\" onclick=alert()></iframe>";
    }demo();
    </script></html>------------------------------------------------------------我要的代码是这样的我需要得到弹出层返回值后再继续执行下面的代码
    如上面这个我修改过的代码,因为我需要利用到弹出层返回的值,要达到一开始弹出弹出层后需要点击弹出层的确定,然后再执行alert("!");
      

  7.   

    通常的Browser 没有类似php或java 的sleep 功能.
    javascript 实现 sleep 或 wait是很难的.
     
    Teabrowser 实现了window.sleep() function,
    可下载看看.
    网址:http://groups.google.com/group/teabrowser/web/TeaBrowser.zip
      

  8.   

    用window.showModalDialog,如
    retObj=window.showModalDialog("childwin.htm",args,window_style)
    window.showModalDialog弹出的是一个模式对话窗口,当执行了这句话后,除非关闭了childwin.htm,否则不会执行下面的语句,并且可以通过childwin.htm返回值到调用窗口,如返回retObj,可查看关于showModalDialog的具体用法,没错的,我就经常用到模式窗口
      

  9.   

    把你的alert("!")移动到callbackFunction里面不就可以了
    function demo()
    {
    showPageMask();
    showMyPrompt("callbackFunction");
    //alert("!");
    }function callbackFunction( result )
    {
    alert("user input: "+result);
    alert("!");
    }
      

  10.   

    可以用setTimeout写一个阻断,来模拟sleep();
      

  11.   

    js实现Sleep功能利用IE特殊的对话框实现来曲径通幽
    function sleep(timeout) {
    window.showModalDialog("javascript:document.writeln('<script>window.setTimeout(function () { window.close(); }, " + timeout + ");<\/script>');");
    }window.alert("before sleep ...");
    sleep(2000);
    window.alert("after sleep ...");
    缺点-只有IE支持(IE7因为安全限制也而不能达到目的)。2-------------------------------------------
    function sleep(millis) {
        var notifier = NjsRuntime.createNotifier();
        setTimeout(notifier, millis);
        notifier.wait->();
    }
    看到 ->() 这样的语法,就象刚看到Prototype的 $() 函数一样让我惊为天人。不过直接在浏览器中这段脚本是会报告语法错误的。实际上它们需要经过预编译成客户端浏览器认可的JavaScript。
      

  12.   

    window.showModalDialog的确使我想要的效果
    但是只有IE支持,而且操作也不方便楼上的方法没听过,不过只有IE支持(IE7因为安全限制也而不能达到目的)的缺点也不行看过
    http://topic.csdn.net/t/20060303/22/4591744.html
    的帖子里面的方法都是牺牲CPU来达到效果,只是忙等,无法达到效果FuWaer()的回调函数也想过
    但是我弹出窗口获得的值是下面所有程序都要用的,都移到回调函数里不但破坏程序结构,而且不太现实
      

  13.   

    可以用setTimeout写一个阻断,来模拟sleep();----------------
    不知道怎么实现
    不过估计也不能达到我sleep的目的我要求sleep是等待用户填写值
    在此期间Js是不能继续执行下去的
      

  14.   

    单线程是没有多线程的sleep功能的,只能通过不停的检查实现类似的目的。或者更改你的设计避免此功能,如使用事件机制。
    var sleep = false;
    function aa(){
        if(!sleep){
            显示提示框
            sleep=ture
            setTimeout(aa,100);
        }else if(用户还没按确定){
            setTimeout(aa,100);
        }else{
            继续执行的代码;
        }
    }
      

  15.   

    同意
    还是回避为主
    不过你的方法还是破坏了程序结构我一个function不得不拆成几份
    而且所有脚本都必须写成function
    很麻烦