【问题标题】:Changing the state of apps script webapp更改应用程序脚本 webapp 的状态
【发布时间】:2012-07-27 17:35:44
【问题描述】:

我正在使用 Google Apps 脚本制作独立的网络应用程序。我在应用程序中有某种任务流程。首先从电子表格中搜索一些内容,然后选择如何处理收集的数据,然后用一些用户输入填充电子表格行。所以我需要在几个州之间奔跑。

我很确定我对网络技术知之甚少,所以这可能是一个非常愚蠢的问题,但它就是这样。

我知道 e.parameters 来自这样的网址 www.google.com&value=helloworld , e.parameters.value 返回 helloworld。

所以现在的问题是:如何在 doGet(e) 中设置参数 e 值并在同一脚本项目中调用同一页面甚至不同的页面/脚本?换句话说,我该如何调用 self&value=helloworld ?

还有其他方法可以做到这一点吗?在 GWT 中,我只是将所有内容存储到数据库中,并将会话保存在 cookie 中。但是不允许使用 cookie,那么如何在 google apps 脚本中保持 webapp 的状态?

编辑:这就是我为 doGet(e) 传递参数的方式。

function doGet(e) {
  var app = UiApp.createApplication();
  var newValue = 0;
  if(e.parameter == undefined || e.parameter.value == undefined){
    newValue = 1;
  }else{
    newValue = 1+parseInt(e.parameter.value);
  }
  var link = 'https://script.google.com/a/macros/domain.com/s/<insertidhere>/dev';
  var anchor = app.createAnchor('Next',link+'?&value='+newValue);
  anchor.setTarget('_self');
  app.add(anchor);
  var label = app.createLabel(newValue);
  app.add(label);
  return app;
}

链接格式发生了一些变化,因此您需要添加而不是连接 &value=...首先像这样?&value1=helloworld&value2=....

使用失败?导致我认为存在错误,我需要对链接使用旧格式,并且使用旧格式禁止除脚本所有者之外的任何其他人使用它。

希望这可以帮助某人解决类似的问题。

【问题讨论】:

  • 像这样将默认链接从新格式更改为旧格式:New format: /macros/s/{service key}/exec Old format: /macros/exec?service={service key} 对于 n00bs 来说,Bug 是最糟糕的...

标签: google-apps-script


【解决方案1】:

您几乎已经回答了自己。将 URL 参数附加到 Web 应用程序 URL 的末尾,您可以在脚本中访问它们。

假设您有一个类似

的 URL

http://script.google.com/.../exec

点击网址时

http://script.google.com/.../exec?value=helloworld

, 在 doGet 中,您可以将这些 URL 参数读取为

e.parameter.value;

【讨论】:

  • 感谢您的回复!其实我就是这么做的。原来http://script.google.com/.../exec?value=helloworld 不起作用。相反,我需要使用https://sites.google.com/macros/exec?service=...&amp;value=helloworld。这会在某些平台(如 iPad)中引发关于缺少页面的错误..
  • 这个bug 看起来和我遇到的问题一样。
  • 该错误仅在您将脚本插入 google 站点时才会发生,并且与浏览器跨站点权限有关。通过将站点和脚本都保留在 sites.google.com 域中,浏览器很高兴。
【解决方案2】:

IMO - 而不是使用 ?分隔多个参数尝试将所有值与您选择的其他字符分隔符保持在一个锚点中,例如 # since the first ?它可能会忽略另一个和之后的一切。很高兴听到你的发现。

【讨论】:

    猜你喜欢
    • 2022-11-10
    • 1970-01-01
    • 2013-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多