Javascript 如何设置回调函数的值?
我正在使用一些现有的javascript,我有以下代码:Javascript 如何设置回调函数的值?,javascript,Javascript,我正在使用一些现有的javascript,我有以下代码: launchDialog(myUrl,function(result, returnValue){ //whatever }); 这段代码启动一个模式窗口,当该窗口关闭时,回调函数启动 我想知道的是,我是否可以从模式执行一些javascript,这将允许我设置回调函数的returnValue参数 供参考: 不确定这是否重要,但这是一些现有SharePoint javascript的简化版本。我无法更改lauchDialog函数的功
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
将打开一个模式窗口,在那里我可以执行一些javascriptcallbackTester
将相当于我的launchDialog
方法。嗯,我会看看我能想出什么HRRM这很接近,但在我的示例中,我没有访问callbackTester
功能的权限。在我的示例中,callbackTester
将打开一个模式窗口,在那里我可以执行一些javascriptcallbackTester
将相当于我的launchDialog
方法。嗯,我来看看我能想出什么办法。从打开的模式窗口运行的javascript是否可以使用外部变量?我不知道,这取决于您的环境,但应该不难测试。在任何情况下,你都可以将你的应用程序配置存储在一个单独的文件app_config.js
中,你可以随时加载它。请记住,我自己还没有测试过这个文件。我只是想这可能行得通,但可能比看起来更复杂……不幸的是,我似乎无法从模式窗口访问myApp.returnValue
。对此有什么建议吗?那么外部变量是否可用于从打开的模式窗口运行的javascript?我不知道,这取决于您的环境,但应该不难测试。在任何情况下,你都可以将你的应用程序配置存储在一个单独的文件app_config.js
中,你可以随时加载它。请记住,我自己还没有测试过这个文件。我只是想这可能行得通,但可能比看起来更复杂……不幸的是,我似乎无法从模式窗口访问myApp.returnValue
。有什么建议可以绕过这个问题吗?