可安装的触发器onEdit in addon

时间:2016-03-15 16:40:43

标签: events google-apps-script triggers google-sheets protected

这篇文章中包含的代码是在插件中使用可安装的“On Edit”触发器。当我在Google Apps脚本中将文档的ID作为参数传递给.forSpreadsheet(ssss)时,控制台中会出现一条错误消息:

  

此加载项正在尝试在当前未使用的文档上创建触发器。

似乎加载项无法正确识别活动工作表。应该在哪里放置功能? onInstall()onOpen()

function createSpreadsheetEditTrigger() {  
      var ssss = SpreadsheetApp.getActive().getId();

  ScriptApp.newTrigger('onEditTrigger')
    .forSpreadsheet(ssss)
    .onEdit()
    .create();
}

function onEditTrigger(e){
    isSheetName('SheetName') && sendingEmailFunction(e);  
}

2 个答案:

答案 0 :(得分:1)

不要使用身份证。

目前:

var ssss = SpreadsheetApp.getActive().getId();

应该是:

var ssss = SpreadsheetApp.getActive();

ss的参数.forSpreadsheet(ss)必须是电子表格对象。您正在输入一个字符串。 getId()返回一个字符串。始终查看返回的数据类型以及所需的数据类型。

Google Documentation

答案 1 :(得分:0)

来自https://developers.google.com/apps-script/guides/triggers/installable#managing_triggers_programmatically

function createSpreadsheetEditTrigger() {
  var ss = SpreadsheetApp.getActive();
  ScriptApp.newTrigger('myFunction')
      .forSpreadsheet(ss)
      .onOpen()
      .create();
}