Google apps script 在提交时清除页面

Google apps script 在提交时清除页面,google-apps-script,Google Apps Script,我对使用谷歌脚本还相当陌生,除了一个问题,我在哪里都找不到答案之外,我做得还不错。我有一个submit按钮,单击处理程序会隐藏当前面板,并显示一个垂直面板,其中添加了很多标签 然后我有一个后退按钮,它会将您带回到原始面板,因此它会隐藏当前页面,然后重新显示第一页。当他们再次单击“提交”时会出现问题,我已清除垂直面板,但当添加新面板并向其中添加内容时,新内容从最后一个面板结束的位置开始,因此页面向下移动了3/4。如何重用现有的verticalPanel或将其丢弃以添加新内容 代码 这是一个极其简化

我对使用谷歌脚本还相当陌生,除了一个问题,我在哪里都找不到答案之外,我做得还不错。我有一个submit按钮,单击处理程序会隐藏当前面板,并显示一个垂直面板,其中添加了很多标签

然后我有一个后退按钮,它会将您带回到原始面板,因此它会隐藏当前页面,然后重新显示第一页。当他们再次单击“提交”时会出现问题,我已清除垂直面板,但当添加新面板并向其中添加内容时,新内容从最后一个面板结束的位置开始,因此页面向下移动了3/4。如何重用现有的verticalPanel或将其丢弃以添加新内容

代码
这是一个极其简化的版本,很显然你不会这样写,但它有助于解释它。运行此代码将在每次单击按钮时继续添加相同的标签,我希望每次单击时都有一个新页面:

// Script-as-app template. 
function doGet() {
  var app = UiApp.createApplication();
  var button = app.createButton('Click Me');
  app.add(button); 
  var handler = app.createServerHandler('myClickHandler'); 
  button.addClickHandler(handler);
  return app;
}

function myClickHandler(e) {
  var app = UiApp.getActiveApplication();
  var label = app.createLabel('The button was clicked');
  app.add(label)
  app.close();
  return app;
}
演示
请参阅演示。

在“简化”代码中,没有垂直面板。您正在直接向UIApp添加标签。如果您有一个垂直面板,您可以使用
VerticalPanel.clear()
清除它的所有现有项目

我最终设法找到了它,在加载段中添加该面板可以正确清除它。当它第一次在onclick函数中声明时,它会导致它执行上述行为,因此,只要在load中声明它并隐藏它,然后在需要时显示它,它就会停止该行为

不完全确定为什么我不能首先在onclick中声明它,但它是有效的,所以我没有抱怨


感谢大家的帮助。

请显示一些代码和/或(链接到)屏幕截图,以帮助更清楚地解释情况。如果你有一个展示这个问题的小脚本,那真的会很有帮助。这是一个非常简化的版本,很显然你不会这样写,但它有助于解释它。运行此代码将在每次单击按钮时继续添加相同的标签,我希望每次单击时都有一个新页面://Script as app template。函数doGet(){var app=UiApp.createApplication();var button=app.createButton('Click Me');app.add(button);var handler=app.createServerHandler('myClickHandler');button.addClickHandler(handler);return app;}函数myClickHandler(e){var app=UiApp.getActiveApplication();var label=app.createLabel(“已单击按钮”);app.add(label)app.close();return app;}是的,我正在做一个简化版本来说明这一点。如果我使用垂直面板并清除,它会清除,但下一次单击面板时会从旧面板停止的位置开始,因此它会继续向下移动。在这个简单版本中,这没什么大不了的,但是当你有一个包含整页文本的面板时,它真的会把它吹坏。