0

嗨,大家好,

Google App Script 可以以多种方式使用。我知道因为我已经尝试过其中一些,但我不是专家,所以情况是这样。

我创建了一个电子表格,使用脚本编辑器附带的新 UI Building 创建一个表单。命名:gtest01
UI 组成:

  • 标签,id=label_caption
  • 按钮 1,id=button_hide,event-onmouseclick=hide_label
  • 按钮 2,id=button_show,event-onmouseclick=show_label
  • 按钮 3,id=button_message,event-onmouseclick=message_me

现在,代码是:

/* This is so when I want to just deploy it as a [webapp] using the
script editor -> Publish Deploy as Web App
*/
function doGet(e) {
 var app = UiApp.createApplication().setTitle("Sheet Application");
  app.add(app.loadComponent("gtest01"));
  Logger.log("Application UI Loaded");  
  return app;
}

function message_me(e) {  
  Browser.msgBox("my message"); 
}

function hide_label(e) {
  var app = UiApp.getActiveApplication();
  label =app.getElementById("label_caption");
  label.setVisible(false);
}

function show_label(e) {
  var app = UiApp.getActiveApplication();
  label =app.getElementById("label_caption");
  label.setVisible(true);
}

// this code is for when the spreadsheet is shared so they can access the form
function showform_() {
  var app = UiApp.createApplication();
  app.add(app.loadComponent("gtest01"));
  SpreadsheetApp.getActiveSpreadsheet().show(app); 
}

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menuEntries = [];
  menuEntries.push({name: "Show Form", functionName: "showform_"});
  ss.addMenu("e-Test", menuEntries);
}

第一种情况是共享电子表格时

  • 单击菜单时,表单将加载-很好
  • 当显示和隐藏按钮没有任何反应 - 为什么以及如何解决这个问题?
  • 单击消息按钮时-消息将显示但表单将关闭,如何在不关闭表单的情况下显示消息?

第二种情况是作为 Webapp 发布时。

  • 当开发者链接访问时,UI 总是更新 - 好的
  • 当 URL 链接访问时,UI 总是像缓存一样更新,我该如何解决这个问题?
  • 在开发链接上:当显示和隐藏按钮没有任何反应时 - 为什么以及如何解决这个问题?
  • 在开发链接上:单击消息按钮时 - 将生成错误,如何在 WebApp 上显示警报消息

请帮助我搜索并尝试了论坛中的示例代码和答案,我遗漏了一些东西。

谢谢

尼克·艾斯

4

2 回答 2

2

显示和隐藏按钮没有任何反应的第一个场景 - 为什么以及如何解决这个问题?

在您的函数中,最后使用 return app。除非您返回 app 对象,否则 UI 不会更新。

如何在不关闭表单的情况下显示消息?- 尝试 SpreadsheetApp.getActiveSpreadsheet().toast()

第二种情况

当 URL 链接访问时,UI 总是像缓存一样更新,我该如何解决这个问题?- 将您最近的代码另存为版本

在开发链接上:当显示和隐藏按钮没有任何反应 - 再次返回应用程序将处理这个问题

在开发链接上:单击消息按钮时... - Web 应用程序不支持 Browser.msgBox。

于 2012-06-22T11:38:04.697 回答
1

使用 UI 时,最好让所有事情都发生在这个 Ui 中,所以尽量避免使用 Toast 显示消息(因为它们在 Web 应用程序中不受支持)。由于您使用的是 GUI,因此在消息中使用最初不可见的标签并使其在处理程序例程中可见应该很容易。请注意,这种处理程序也可以是客户端处理程序,除非您需要从此操作执行其他操作。

至于你的其他问题,我们(非常快的)朋友斯里克已经彻底回答了;-)

于 2012-06-22T12:21:15.677 回答