我有一個簡單的應用程序,用戶按下按鈕並顯示歡迎消息。我需要這個消息(標籤)在幾秒鐘後隱藏,比如說5秒。 我在google apps腳本中找不到像setTimeout()這樣的函數。如何使用Google應用程序腳本在幾秒鐘後隱藏標籤?
有人可以提供一個想法我可以如何實現這一點?
(正如你所看到的,不是一個有經驗的程序員)。
謝謝!
我有一個簡單的應用程序,用戶按下按鈕並顯示歡迎消息。我需要這個消息(標籤)在幾秒鐘後隱藏,比如說5秒。 我在google apps腳本中找不到像setTimeout()這樣的函數。如何使用Google應用程序腳本在幾秒鐘後隱藏標籤?
有人可以提供一個想法我可以如何實現這一點?
(正如你所看到的,不是一個有經驗的程序員)。
謝謝!
一個可能的解決方案。邏輯是有兩個按鈕點擊處理程序。第一個讓標籤可見,第二個5秒後隱藏標籤。
function doGet(e) {
var app = UiApp.createApplication();
var panel = app.createVerticalPanel();
var btn = app.createButton().setText('Test');
var lblVisible = app.createLabel('Visible Test').setVisible(false).setId('lblVisible');
panel.add(btn);
panel.add(lblVisible);
var handler = app.createServerHandler('onBtnClick');
var handlerWait = app.createServerHandler('onWaitEvent');
handler.addCallbackElement(panel);
handlerWait.addCallbackElement(panel);
btn.addClickHandler(handler);
btn.addClickHandler(handlerWait);
app.add(panel);
return app;
}
function onWaitEvent(e) {
Utilities.sleep(5 * 1000);
var app = UiApp.getActiveApplication();
var lblVisible = app.getElementById('lblVisible');
lblVisible.setVisible(false);
return app;
}
function onBtnClick(e) {
var app = UiApp.getActiveApplication();
var lblVisible = app.getElementById('lblVisible');
lblVisible.setVisible(true);
return app;
}
謝謝Megabyte1024。很有用!!!! –
@ Megabyte1024你爲什麼要在兩個處理函數中使用app.close()?這是沒有道理的......你不應該關閉應用程序,當你設置可見標籤(函數(onCloseClick())你提供的代碼根本無法正常工作,它從不顯示測試標籤;-) –
@Serge insas:更正了代碼。代碼幾乎完全取自我以前的代碼,我曾經玩過[這個問題](http://stackoverflow.com/questions/11314772/google-script-how-to-close-an-ui-from-the -server -handler-while-another-functio) – megabyte1024
進度指示器解決方案等,這個工程。它可以讓你連鎖事件,我已經多次使用它。
在旅途中更新窗口小部件值。 productforums.google.com/d/topic/apps-script/lABoP-cJcGQ/...
請參閱此帖以獲得更好的解決方案:http://stackoverflow.com/questions/21483652/automatically-close-a-google- apps-script-uiapp-five-seconds –