2015-08-31 26 views
1

我想为电子表格绑定脚本创建一个可安装的onEdit触发器。我想用一个单独的独立脚本以编程的方式执行此操作。看起来这应该是可能的根据文档:独立脚本可以为绑定到电子表格的另一个脚本创建触发器吗?

请注意,与简单的onOpen()触发器不同,可安装触发器的脚本不需要绑定到电子表格。要从独立脚本创建此触发器,只需将SpreadsheetApp.getActive()替换为对SpreadsheetApp.openById(id)的调用即可。 https://developers.google.com/apps-script/guides/triggers/installable#managing_triggers_programmatically

然而,当我运行下面的代码,触发器被添加到独立的脚本,而不是项目的目标,电子表格绑定脚本。

function createSpreadsheetEditTrigger() { 
    var ss = SpreadsheetApp.openById('1vcAgQ6vPZiILFX0fB_jojyrSdGKr7goD_iCQcFsImEM'); 
    ScriptApp.newTrigger('update') 
    .forSpreadsheet(ss) 
    .onEdit() 
    .create(); 
} 

我错过了什么?

回答

1

那么,这是可能的,但不是这样的。我认为你有点误解了文档。换句话说,它所说的是:要创建一个可安装的触发器,脚本不需要绑定到目标电子表格。但触发器一如既往地用于运行脚本本身。没有为其他脚本安装触发器。

脚本只能设置触发器为自己,而且也没有API来设置一个触发另一个脚本。

您可以将有界脚本作为Web应用程序发布,然后远程独立脚本可以调用其URL,基本上“告诉”有界脚本是时候设置其可安装触发器。

+0

谢谢你,这现在更有意义。所以告诉我,如果这是正确的:我可以创建一个具有两个函数(比如functionA()和functionB())的独立项目,并且在编辑给定的电子表格时创建一个触发函数functionB()的触发器。 – zzcrab

+0

是的,没错。 –

相关问题