【问题标题】:google apps script - web app doesn't seem to do anything . .谷歌应用程序脚本 - 网络应用程序似乎没有做任何事情。 .
【发布时间】:2012-08-09 07:59:25
【问题描述】:

我是一名 Java 开发人员,但我使用 Google 协作平台为一个非营利组织开发了一个小型网站。我有一个表格,我想有点动态,Google Apps 脚本似乎是一个可行的选择。就像学习新技术时经常发生的那样,我从教程/文档中复制并粘贴了下面的代码。然后我发布了它,并将脚本小部件插入到站点上的一个页面中并保存了该页面。当我重新加载页面时,小部件的“占位符”就在那里,但什么也没有发生 - 没有按钮,没有面板,什么都没有。当我从脚本编辑器运行它时,结果相同。我确定我遗漏了一些明显的东西,但我根本无法让 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;
}

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    您似乎只是忘记在doGet()函数中将aPanelRoot添加到应用程序中

    app.add(aPanelRoot)
    

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

    如果我可以添加最后一条评论,通常最好将父小部件选择为callbackElement,这样当您开始拥有大量元素时就不会忘记添加元素(所有子小部件都会自动添加)包含在父级中)。

    【讨论】:

    • 感谢您的帮助,谢尔盖。这(当然)是问题所在。我全神贯注于尝试正确部署它,我错过了显而易见的事情。了解重新:将对象设置为可见 - 这是一个范围(沮丧)。我理解你的观点:callbackElement - 再次感谢!
    猜你喜欢
    • 2020-06-22
    • 1970-01-01
    • 1970-01-01
    • 2023-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多