Javascript &引用;找不到脚本函数";-谷歌应用程序脚本

Javascript &引用;找不到脚本函数";-谷歌应用程序脚本,javascript,google-apps-script,iife,Javascript,Google Apps Script,Iife,我开始使用Google应用程序脚本,我对JavaScript知之甚少,因此尝试了以下内容。我得到一个错误,但脚本似乎确实在工作 为什么会出现错误?当我按下小播放按钮时,它似乎特别希望运行一个函数。。像我下面所做的那样构造一个google应用程序脚本文档会是一个糟糕的做法吗 (function (id) { var sheet = SpreadsheetApp.openById(id).getSheets()[0]; var data = sheet.getDataRange().ge

我开始使用Google应用程序脚本,我对JavaScript知之甚少,因此尝试了以下内容。我得到一个错误,但脚本似乎确实在工作

为什么会出现错误?当我按下小播放按钮时,它似乎特别希望运行一个函数。。像我下面所做的那样构造一个google应用程序脚本文档会是一个糟糕的做法吗

(function (id) {

  var sheet = SpreadsheetApp.openById(id).getSheets()[0];

  var data = sheet.getDataRange().getValues();

  Logger.log(data);

  sheet.appendRow(['this','is','another', 'bigger','test','of','stuff']);

})('1BXDicksYS19jre0tZKHEjqqyvdzbhbtFfSm053q2sZ0')
==编辑===


谷歌应用程序脚本不应该从IIFE运行,因为它想要明确地触发一个函数。所以是的。一年后,根据我仍然有限的经验,我认为这是一种编写Google应用程序脚本的糟糕方式。

Google应用程序脚本不应该从iLife运行,因为它想要明确地触发一个函数。所以是的。我认为,在一年后我仍然有限的经验中,这将是编写Google应用程序脚本的一种糟糕的方式。

以.gs结尾的Google应用程序脚本文件不像JavaScript那样在加载文件时运行文件中的所有函数,所有iLife都将运行

为了在上面使用的.gs文件中运行函数,您需要在电子表格的onOpen或onEdit中添加触发器。 打开/编辑时:

可根据特定h/d/m条件设置的时间触发器。 可安装触发器:

如果要将其连接到google web应用程序,则需要使用google.scripts.run.functionName() 在客户端运行.gs函数:

不要在.gs文件中使用立即调用的函数。由于Google应用程序脚本文件树的工作方式,为您的.gs函数指定非常具体的名称也很好

所有函数都可以在google应用程序脚本文件树中的任何文件中访问,这意味着您可以调用google应用程序脚本中任何文件中的任何函数


如果在这个结构中有一个没有名字的函数,那么就不可能调用这个无名函数。希望有帮助。

在“查看”菜单下,选择“执行记录”。请看列表的底部。是否有错误消息?如果,那么,它是什么?哪一行?是,有一个错误:15-06-01 16:55:53:632 SAST]执行失败:找不到脚本函数:createReport[0.0秒总运行时间],但脚本中没有命名函数。我不知道为什么它一直试图运行一个函数(起初我有一个名为createReport的函数。但是,它完全按照它应该的方式工作,所以它几乎是一个bug?您使用的JavaScript语法被许多人称为“自调用”函数。在某些条件下,该函数在没有被调用的情况下运行。它也是一个匿名函数。(它没有名称)因此函数名字段中没有列出名称。如果单击“运行”按钮,该函数可能会运行,因为它在全局范围内。我不确定要如何触发该函数?是的,如Sandy所说。使用“常规”函数语法,如
function myFunction(){var id='xxxxx';等;}
然后它将出现在功能列表中,并可在触发器中使用