我正在使用与具有onSubmit触发器的电子表格链接的Google表单。如果我将表单与其电子表格取消链接,然后再使用相同的电子表格将其链接,那么Google引擎会创建新工作表,并且(!)会针对已存在的所有响应触发onSubmit触发器!我发现它是因为我的onSubmit函数根据答案创建了一些电子表格
这是该机制的预期行为还是仅仅是一个问题?
附:
我在创建新链接之前尝试删除onSubmit触发器,但它没有帮助:
delete_onsubmit_trigger();
Logger.log('triggers deleted');
//Utilities.sleep(2000); //here I think that perhaps trigger deletion takes some time, but it doesn't help either
set_destination_to_form(form, ss);
set_onsubmit_trigger(ss);
功能区代码是:
function delete_onsubmit_trigger() {
delete_trigger('onSubmit');
}
function delete_trigger(name) {
var triggers, handler;
triggers = ScriptApp.getProjectTriggers();
for (var i = 0; i < triggers.length; i++) {
handler = triggers[i].getHandlerFunction();
if (handler == name) ScriptApp.deleteTrigger(triggers[i]);
}
}
function set_destination_to_form(form, ss) {
form.setDestination(FormApp.DestinationType.SPREADSHEET, ss.getId());
}
function set_onsubmit_trigger(ss) {
ScriptApp.newTrigger("onSubmit")
.forSpreadsheet(ss)
.onFormSubmit()
.create();
}
如何绕过这种突如其来的想法?