Javascript 如何设置回调函数的值?

Javascript 如何设置回调函数的值?,javascript,Javascript,我正在使用一些现有的javascript,我有以下代码: launchDialog(myUrl,function(result, returnValue){ //whatever }); 这段代码启动一个模式窗口,当该窗口关闭时,回调函数启动 我想知道的是,我是否可以从模式执行一些javascript,这将允许我设置回调函数的returnValue参数 供参考: 不确定这是否重要,但这是一些现有SharePoint javascript的简化版本。我无法更改lauchDialog函数的功

我正在使用一些现有的javascript,我有以下代码:

launchDialog(myUrl,function(result, returnValue){
   //whatever
});
这段代码启动一个模式窗口,当该窗口关闭时,回调函数启动

我想知道的是,我是否可以从模式执行一些javascript,这将允许我设置回调函数的
returnValue
参数

供参考:


不确定这是否重要,但这是一些现有SharePoint javascript的简化版本。我无法更改
lauchDialog
函数的功能,但我可以将javascript添加到modal和回调函数中

function tryMe (param1, param2) {
    alert(param1 + " and " + param2);
}

function callbackTester (callback) {
    callback (arguments[1], arguments[2]);
}

callbackTester (tryMe, "hello", "goodbye");
有一个例子,我想这就是你想要做的

例如,使用了以下来源:

有一个例子,我想这就是你想要做的


例如,使用以下来源:

如果我正确理解您的问题,您可以将
returnValue
存储在与模态共享的外部变量中

var myApp = {}; // your namespace
myApp.returnValue = 'something'; // you can override this wherever

launchDialog(myUrl, function(result, returnValue){
   returnValue = myApp.returnValue;
});

如果我正确理解了您的问题,您可以将
returnValue
存储在与modal共享的外部变量中

var myApp = {}; // your namespace
myApp.returnValue = 'something'; // you can override this wherever

launchDialog(myUrl, function(result, returnValue){
   returnValue = myApp.returnValue;
});

“从对话中”是什么意思?对话框无法执行javascript…
lauchDialog
函数在模式窗口中打开一个aspx页面,因此它可以执行javascript。也许dialog是一个糟糕的词汇选择,我只是偏离了SharePoint在其功能中所称的“模态窗口”。你说的是一个新的浏览器窗口、同一页中的div还是iframe?你说的“来自对话框”是什么意思?对话框无法执行javascript…
lauchDialog
函数在模式窗口中打开一个aspx页面,因此它可以执行javascript。也许dialog是一个糟糕的词汇选择,我只是偏离了SharePoint在其功能中所称的“模态窗口”。您是在谈论一个新的浏览器窗口、同一页面中的div还是iframe?Hrrm这很接近,但在我的示例中,我无法访问
callbackTester
功能。在我的示例中,
callbackTester
将打开一个模式窗口,在那里我可以执行一些javascript
callbackTester
将相当于我的
launchDialog
方法。嗯,我会看看我能想出什么HRRM这很接近,但在我的示例中,我没有访问
callbackTester
功能的权限。在我的示例中,
callbackTester
将打开一个模式窗口,在那里我可以执行一些javascript
callbackTester
将相当于我的
launchDialog
方法。嗯,我来看看我能想出什么办法。从打开的模式窗口运行的javascript是否可以使用外部变量?我不知道,这取决于您的环境,但应该不难测试。在任何情况下,你都可以将你的应用程序配置存储在一个单独的文件
app_config.js
中,你可以随时加载它。请记住,我自己还没有测试过这个文件。我只是想这可能行得通,但可能比看起来更复杂……不幸的是,我似乎无法从模式窗口访问
myApp.returnValue
。对此有什么建议吗?那么外部变量是否可用于从打开的模式窗口运行的javascript?我不知道,这取决于您的环境,但应该不难测试。在任何情况下,你都可以将你的应用程序配置存储在一个单独的文件
app_config.js
中,你可以随时加载它。请记住,我自己还没有测试过这个文件。我只是想这可能行得通,但可能比看起来更复杂……不幸的是,我似乎无法从模式窗口访问
myApp.returnValue
。有什么建议可以绕过这个问题吗?