Google App Script onFormSubmit触发器未触发

Google App Script onFormSubmit trigger not firing

本文关键字:触发器 onFormSubmit App Script Google      更新时间:2023-09-26

我有一个脚本来运行一个函数,当一个Google表单被提交,一个新的行添加到我的Google电子表格。唉,它没能触发。没有错误报告,我没有收到通知电子邮件。该函数在手动执行时工作,并且在提交表单时按预期向电子表格添加新行。

我已经通过资源选项卡安装了触发器,当电子表格上有事件时运行onFormSubmit()。我已经尝试过onChange和onFormSubmit,两者都没有响应。当我手动编辑电子表格时,on编辑触发器按预期工作。它应该运行的简单函数如下:

function onFormSubmit() {
Browser.msgBox("Success")
}

请指教,谢谢。

我很好奇到底发生了什么,所以我做了一个测试。

我没有收到错误消息或通知电子邮件,但执行记录显示脚本已被触发

[18-04-14 18:20:35:056 CDT] SpreadsheetApp.getActiveRange() [0 seconds]
[18-04-14 18:20:35:056 CDT] Range.getRow() [0 seconds]
[18-04-14 18:20:35:056 CDT] Range.getLastRow() [0 seconds]
[18-04-14 18:20:35:057 CDT] Range.getColumn() [0 seconds]
[18-04-14 18:20:35:057 CDT] Range.getLastColumn() [0 seconds]
[18-04-14 18:20:35:057 CDT] SpreadsheetApp.getActiveSpreadsheet() [0 seconds]
[18-04-14 18:20:35:151 CDT] Starting execution
[18-04-14 18:20:35:158 CDT] Browser.msgBox([Success]) [0 seconds]
[18-04-14 18:20:35:160 CDT] Execution succeeded [0.002 seconds total runtime]
在我的测试中,我把电子表格和表格放在一起。没有显示对话框。

解释是,由可安装触发器触发的脚本实例不知道用户是否打开了电子表格(浏览器仅在Google电子表格上下文中可用)。

如果目的是在收到表单提交时向用户显示一个对话框,这需要一个"轮询器",就像在Mogsdad的回答中描述的那样,我如何使侧边栏显示来自单元格的值?

看起来你不能在表单中使用Browser.msgBox()。

在触发器函数中,调用Logger.log("function was called")

您将在日志中看到该函数被调用。

FormApp.getUi().alert("hello")将在表单编辑器中创建一个消息框,但不会在活动表单中创建。