Google apps script 将google表单重新链接到所有记录的电子表格提交事件
我正在使用google表单,该表单与带有onSubmit触发器的电子表格链接。如果我将表单从它的电子表格中取消链接,然后再次将其与相同的电子表格链接,谷歌引擎将创建新的表格,并(!)为所有已经存在的响应触发Submit触发器!我发现它是因为onSubmit函数根据答案创建了一些电子表格。Google apps script 将google表单重新链接到所有记录的电子表格提交事件,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在使用google表单,该表单与带有onSubmit触发器的电子表格链接。如果我将表单从它的电子表格中取消链接,然后再次将其与相同的电子表格链接,谷歌引擎将创建新的表格,并(!)为所有已经存在的响应触发Submit触发器!我发现它是因为onSubmit函数根据答案创建了一些电子表格。 这是该机制的预期行为还是仅仅是一个问题 附加说明 我尝试在创建新链接之前删除onSubmit触发器,但没有帮助: delete_onsubmit_trigger(); Logger.log('trigg
这是该机制的预期行为还是仅仅是一个问题
附加说明
我尝试在创建新链接之前删除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();
}
函数delete\u onsubmit\u trigger(){
删除_触发器(“onSubmit”);
}
函数删除_触发器(名称){
var触发器、处理器;
触发器=ScriptApp.getProjectTriggers();
对于(var i=0;i
有没有办法绕过这种突发事件?搜索问题追踪者。