谷歌应用程序脚本 - 网络应用程序似乎没有做任何事情。 。

时间:2012-08-08 23:16:42

标签: google-apps-script

我是一名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;
}

1 个答案:

答案 0 :(得分:2)

您似乎忘了在aPanelRoot功能

中将doGet()添加到应用中
app.add(aPanelRoot)

另外:默认情况下,所有小部件都是可见的,因此您可以删除所有setVisible(true)语句,因为只有在其他地方将其设置为false时才需要这些语句...

如果我可以添加最后一条评论,那么选择父小部件作为callbackElement通常是一个好主意,因此当你开始拥有大量元素时,你不会忘记添加元素(所有孩子)自动包含在父母中。)