我是一名Java开发人员,但我为使用Google协作平台的非营利组织创建了一个小网站。我有一个表格,我想有点动态,Google Apps Script似乎是一个可行的选择。当人们学习新技术时经常发生,我从教程/文档中复制并粘贴了下面的代码。然后我发布了它,并将脚本小部件插入到网站的页面中并保存了页面。当我重新加载页面时,小部件的“占位符”就在那里,但没有任何反应 - 没有按钮,没有面板,没有任何东西。当我从脚本编辑器运行它时,结果相同。我确定我遗漏了一些显而易见的东西,但我还是无法让UI完全渲染。一点点方向将不胜感激。 提前谢谢!
function doGet(e) {
Logger.log("Executing the doGet() method . . .");
var app = UiApp.createApplication();
var aPanelRoot = app.createVerticalPanel();
var button = app.createButton('Click Me');
aPanelRoot.add(button);
var label = app.createLabel('The button was clicked.');
label.setId('statusLabel');
aPanelRoot.add(label);
var handler = app.createServerHandler('myClickHandler');
handler.addCallbackElement(label);
button.addClickHandler(handler);
aPanelRoot.setVisible(true);
return app;
}
function myClickHandler(e) {
var app = UiApp.getActiveApplication();
var label = app.getElementById('statusLabel');
label.setVisible(true);
//app.close();
return app;
}
答案 0 :(得分:2)
您似乎忘了在aPanelRoot
功能
doGet()
添加到应用中
app.add(aPanelRoot)
另外:默认情况下,所有小部件都是可见的,因此您可以删除所有setVisible(true)
语句,因为只有在其他地方将其设置为false
时才需要这些语句...
如果我可以添加最后一条评论,那么选择父小部件作为callbackElement
通常是一个好主意,因此当你开始拥有大量元素时,你不会忘记添加元素(所有孩子)自动包含在父母中。)