8

我试图实现这里建议的谷歌脚本的改进解决方案:谷歌电子表格:当单元格更改文本时更改行颜色的脚本;.

但是,在调试了我的脚本后,我的文档无法再访问了。看来我的脚本是错误的并且阻止了我的文档打开......结果是我无法禁用/编辑/删除相关的谷歌脚本并且我被卡住了!

你有办法解决这个阻塞问题吗?

谢谢,

法比安

更新:经过进一步调查,问题的原因似乎是由于从事件触发器 onOpen() 调用的无限循环脚本。所以我的问题可以重新表述为:

如何停止进入无限循环的 Google App 脚本?

我可以使用另一个脚本来终止这个错误脚本的执行吗?

4

6 回答 6

15

这是一个旧帖子,但以防万一:

转到您的 Google Apps 脚本项目页面,在我的执行选项卡中:https ://script.google.com/home/executions 。

按状态过滤,以便您可以找到正在运行的项目。在右侧,您有三个点菜单,您可以在其中终止正在运行的项目。

于 2018-02-16T22:19:25.353 回答
4

其实很简单。在您的脚本循环中,设置一个全局变量。然后,当您想停止它时,请连接一个脚本以将全局 var 设置为 false 到按钮图像。像这样:

var RUNLOOP = true;

function YourLoop() {
  if (RUNLOOP) {
     // your code that does something every loop
  }
}

function stopLoop() {
  RUNLOOP = false;
}
于 2017-11-30T03:25:53.003 回答
2

脚本将停止执行约 6 分钟的限制。这适用于在触发器上运行的函数。但是,在打开电子表格的情况下等待 6 分钟绝对值得。

于 2013-02-15T15:41:26.480 回答
1

复制电子表格时,触发器菜单中创建的触发器将被删除。尝试复制有问题的电子表格并从那里开始。

如果您有权访问浏览器历史记录,请使用它来访问项目的代码。

于 2013-02-15T23:03:14.157 回答
1

您可以前往以下地址:

https://security.google.com/settings/security/permissions

使用安装脚本的帐户,找到脚本(使用名称)并将其删除,使其不再工作 - 此操作将删除授予脚本的所有权限。

于 2016-04-11T05:26:41.887 回答
0

我有同样的问题,这是我能够找到的:

该脚本最终将在 6 分钟后超时。目前,您只能从脚本编辑器中手动停止正在运行的 Google Apps 脚本,即使那样,也只能在脚本编辑器中启动它。

作为一种解决方法,您可以为您的函数构建一个“终止开关”,但这可能会对性能产生负面影响,并且需要您添加逻辑来检查您希望能够停止的每个函数的“终止开关”。

这是这种“终止开关”的示例:
https ://ctrlq.org/code/20112-suspend-google-script-execution

于 2016-06-07T14:05:30.513 回答