Google apps script 谷歌应用程序脚本UiApp当按下按钮时更改它';在处理脚本之前,是什么颜色?
我想脚本时,按钮被按下立即改变其颜色,但实际上它的改变它的颜色后,脚本的copyProject完成,copyProject功能需要约40秒 在运行copyProject函数之前,我曾想过拆分处理程序函数,使其在印刷机上更改颜色,有什么想法吗Google apps script 谷歌应用程序脚本UiApp当按下按钮时更改它';在处理脚本之前,是什么颜色?,google-apps-script,Google Apps Script,我想脚本时,按钮被按下立即改变其颜色,但实际上它的改变它的颜色后,脚本的copyProject完成,copyProject功能需要约40秒 在运行copyProject函数之前,我曾想过拆分处理程序函数,使其在印刷机上更改颜色,有什么想法吗 function copyProject(e) { var app=UiApp.getActiveApplication(); var button=app.getElementById("button"); process
function copyProject(e)
{
var app=UiApp.getActiveApplication();
var button=app.getElementById("button");
process(app,button);
var sourceProjectID=e.parameter.id;
copProject(sourceProjectID);
return app.close();
}
function process(app,button)
{
button.setStyleAttribute("color", "red").setText("Processing");
return app;
}
感谢处理在服务器上进行,因此它只会在处理完成后重新绘制应用程序,您的UI将不会响应 使用UI并使其响应的正确方法是使用客户端处理程序,它使您能够动态更新UI。还要研究验证器,它有助于在处理输入之前验证输入,而无需进入服务器
如果我能进一步帮助您,请告诉我。以下是一个示例,显示一个按钮上的客户端服务器和服务器处理程序,模拟您想要的行为:当您单击按钮时,该按钮会改变颜色。。。在长serverHandler函数之后,它显示一条消息
function doGet(){
var app = UiApp.createApplication();
var handler = app.createServerHandler('test');
var cHandler = app.createClientHandler();
var btn = app.createButton('click this button').addClickHandler(handler).addClickHandler(cHandler);
cHandler.forEventSource().setStyleAttributes({'color':'red'})
app.add(btn);
return app
}
function test(e){
var app = UiApp.getActiveApplication();
app.add(app.createLabel('operation completed'));
Utilities.sleep(4000);
return app;
}
现场测试良好的开端,但这些功能中的大多数现在已被弃用(2017年底)