我编写了一个简单的脚本,尝试以编程方式从onEdit函数
创建脚本function onEdit() {
test();
}
function test() {
triggerLater();
}
function customMsgBox() {
Browser.msgBox("hello world");
}
function triggerLater() {
var date = new Date();
date.setMinutes(date.getMinutes() + 1);
try {
var oneTimeOnly = ScriptApp.newTrigger("customMsgBox")
.timeBased()
.at(date)
.create();
return oneTimeOnly.getUniqueId();
}
catch (e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.toast("error");
}
}
如果我尝试从脚本编辑器运行onEdit,则会创建触发器,但电子表格中的每个编辑都会在 toast 中收到“错误”消息
有人可以帮助我理解吗?
答案 0 :(得分:3)
onEdit
简单事件处理函数具有有限的权限(即它无法发送电子邮件,打开日历等)。因为它没有用户权限运行。因此,它无法设置触发器(没有任何限制,并且会成为一个巨大的安全漏洞)。
如果您希望在帐户下创建触发器,请使用可安装的编辑触发器。首先,将onEdit函数重命名为其他函数(因此它不会作为简单的事件处理程序触发),然后转到“资源”菜单并选择要在电子表格编辑事件上运行的函数。请查看docs了解更多信息。