我在google电子表格中有一个登录表单,允许我登录外部应用程序。我的电子表格允许我不断与此外部应用程序通信,以便我可以使用它执行task1,task2等。在我可以执行task1或task2之前,我需要验证我是否已登录外部应用程序。
所以我的用例是:
以下是我的代码的外观:
function invokeTask1()
{
//if user not logged in
loginForm("performTask1");
//else
performTask1();//works fine.
}
我的loginForm看起来像这样:
function loginForm(sCallbackFn)
{
//Code to create UiInstance and populate it with username and password fields
//for now, I tried hidden field storing callback for me.
var hdnCallback = app.createHidden("executeAfterLogin", sCallbackFn).setName("proceedWithExecution");
//then I already have ServerHandler for Ok Button Click
var handler = app.createServerHandler('OkButtonEvent');
handler.addCallbackElement(abcPanel);
btnOk.addClickHandler(handler);
}
然后我的OkButtonEvent是我检查登录然后执行相应任务的那个:
function OkButtonEvent(e)
{
//code to pick out e.parameter values and check login on external server application
//I don't know how to invoke e.parameter.proceedWithExecution here.
//This has failed to run without any errors though.
eval(e.parameter.proceedWithExecution);
}
最后,我有这些:
function performTask1()//and also performTask2()
{
//doing something. But not getting invoked via login form's ServerHandler.
}
答案 0 :(得分:0)
尝试this[e.parameter.proceedWithExecution]();
这本身不是UiApp问题 - 这就是你如何通过JavaScript中的字符串名称调用函数。