【问题标题】:Pass variable from Simple trigger into Installable trigger将变量从简单触发器传递到可安装触发器
【发布时间】:2016-08-24 20:12:14
【问题描述】:

我知道可安装触发器以脚本作者身份运行。但是某些服务,如email service 只能通过可安装的触发器工作。

我需要使用简单触发器来检查当前用户是否有权编辑特定范围和可安装触发器来发送电子邮件。

我有这样的代码:

var MY_VARIABLE;

function onEdit() {    
  MY_VARIABLE = 'onEdit was here!'     
}

function myOnEdit() {
// installable trigger
    Browser.msgBox(MY_VARIABLE);

    // send email, use email service
}

结果是undefined

我愿意'onEdit was here!'

【问题讨论】:

标签: google-apps-script google-sheets


【解决方案1】:

如果你写这样的东西:

function onEdit() {    
  MY_VARIABLE = 'onEdit was here!';
  myOnEdit();  
}

function myOnEdit() {
    Browser.msgBox(MY_VARIABLE);
}

它会起作用的。但是,如果“myOnEdit”没有与“onEdit”同时调用,则脚本将忘记所有内容。每次触发 stript 时(onEdit 或手动启动函数时),环境都会重置,“MY_VARIABLE”的内容会被遗忘。
Wim den Herder proposed 在他的评论中是一个很好的解决方案,您需要将“MY_VARIABLE”值存储在 Google Apps 脚本可以通过脚本的差异实例记住的地方。这就是 propertyService 允许的。最后一件事,propertyService 需要授权才能运行。因此,您不能真正使用名为“onEdit”的函数在每次修改单元格时运行它,您需要重命名该函数(无论您想要什么)并在其上设置一个 onEdit 触发器。

【讨论】:

  • 感谢您的猜测。我会测试它,但不确定它是否有效。我需要一个简单的触发器 + 一个可安装的触发器并同时运行它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-22
  • 2016-05-12
  • 2013-01-29
相关资源
最近更新 更多