【问题标题】:Google App Script onFormSubmit trigger not firingGoogle App Script onFormSubmit 触发器未触发
【发布时间】:2023-03-03 03:19:01
【问题描述】:

我有一个脚本可以在提交 Google 表单时运行函数,并在我的 Google 电子表格中添加了一个新行。唉,触发失败。没有报告错误,我也没有收到通知电子邮件。该功能在手动执行时有效,并且在提交表单时会按预期将新行添加到电子表格中。

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

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

任何指点将不胜感激,谢谢。

【问题讨论】:

    标签: javascript google-apps-script triggers google-sheets google-forms


    【解决方案1】:

    我很好奇如果真的发生了什么,所以我做了一个测试。

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

    [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's answerHow do I make a Sidebar display values from cells? 中描述的那样。

    【讨论】:

      【解决方案2】:

      看起来您不能将 Browser.msgBox() 与 Forms 一起使用。

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

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

      FormApp.getUi().alert("hello") 将在表单编辑器中创建一个消息框,而不是实时表单。

      【讨论】:

      • 感谢您的回复。脚本在电子表格中,而不是在表单中。 Browser.msgBox() 应该在电子表格中创建一个消息框,就像我成功运行 onEdit() 触发器时所做的那样。
      • 谢谢。触发器根本没有调用 onFormSubmit() 。将代码复制/粘贴到新的电子表格中解决了这个问题。奇怪,但至少现在有效。
      猜你喜欢
      • 2021-12-10
      • 2021-05-15
      • 1970-01-01
      • 1970-01-01
      • 2018-03-20
      • 2016-12-08
      • 1970-01-01
      • 2013-08-01
      • 1970-01-01
      相关资源
      最近更新 更多