0

我想编写一个 JavaScript 函数,prompt()或者confirm()在其中行执行等到提到的函数返回任何内容。

比如说,我有一个函数abc()会打开一个弹出窗口,然后返回一个值。我想保留调用函数的执行。

function abc(){
    //----------
    return '';
}

function abc_caller(){
    var x = abc();
    alert(x);
}

有人可以帮我解决这个问题吗?

4

3 回答 3

0

您的代码应该是 -

function abc_caller(){
       var x = abc();
       var r=confirm("Your value is " + x);
       if (r==true)
       {
          alert("You pressed OK!")
       }
       else
       {
          alert("You pressed Cancel!")
      }
    }

http://www.w3schools.com/jsref/met_win_confirm.asp中的更多示例。

希望这对您有所帮助。

于 2013-03-13T07:37:38.683 回答
0

这不是浏览器构建者希望您做的事情。如果一段 Javascript 在一定时间内没有响应,浏览器会开始认为有问题,并询问用户是否要停止运行 javascript。

您应该创建一个回调函数。

于 2013-03-13T07:40:17.017 回答
0

你可以为此使用回调:
你的函数

function abc(callback){
    // whatever code here
    var result = ""; // or whatever processing result would be

    if (callback)
    {
        callback(result);
    }
}

用法:

abc(function(result){
    alert(result);
});

编辑:我认为这类似于@mrhobo 的提议

于 2013-03-13T07:44:00.550 回答