【问题标题】:Event object of onSubmit is empty in Google scriptonSubmit 的事件对象在 Google 脚本中为空
【发布时间】:2020-09-23 12:06:11
【问题描述】:

我有一个链接到 Google 表格的 Google 表单。在那个电子表格中,我的代码有这个

function onSubmit(e){
  Logger.log(e)    
  Logger.log("Call onSubmit")
}

触发器设置如下

Project: Spreadsheet's scritp 
Deployment:Head 
Event:From spreadsheet - On form submit 
Function:onSubmit

所以每当我提交表单时,日志都会显示

[object Object]
Call onSubmit

表格有很多问题,不是空的表格。当我阅读文档时,似乎事件对象有很多信息。我的设置有问题吗? 我已经阅读了数据表中的回复,但这并不理想。有太多东西需要手动调用和/或定义。

【问题讨论】:

    标签: debugging logging google-apps-script google-sheets google-forms


    【解决方案1】:

    记录器有问题,不建议直接依赖于您在调试器中看到的内容。

    最佳做法:

    • 始终使用console 类而不是Logger

    • 始终JSON.stringify() 任何您要记录的内容:

      console.log(JSON.stringify(e));
      

    最后一个应该可以解决您的问题。 [object Object] 是在对象上调用toString() 的结果,因为记录器无法直接显示对象。

    const obj = {a:1};
    console.log(obj.toString());//[object Object]
    console.log(JSON.stringify(obj));//'{"a":1}'

    【讨论】:

    • 只是出于好奇,我如何访问console.log的内容。
    • @TamLe 访问 Logger.log 的方式相同。它也可以在 View > Executions 中使用
    【解决方案2】:

    与大多数浏览器调试器不同,Google 应用程序脚本记录器只会存储基本字符串值。在大多数情况下,这意味着文档对于理解复杂值会更有用。在您的情况下,event object for submit events 非常简单,values 键用于简单数组,namedValues 键用于对提交的内容进行对象查找。

    【讨论】:

    • 我已经阅读了所有内容。问题是在我的日志中,事件什么也没显示,只有变量类型是Object
    • 如果您尝试记录一个复杂的对象,如果它不依赖于 getter 和方法,首先使用 JSON.stringify 可能会有所帮助。
    猜你喜欢
    • 2021-01-09
    • 1970-01-01
    • 2023-04-08
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 2011-06-23
    相关资源
    最近更新 更多