我有这个谷歌脚本使用onOpen()来设置界面菜单 . 这些菜单触发导入功能:
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Actions')
.addItem('Refresh', 'refreshData')
.addToUi();
}
function refreshData() {
// code that does stuff
}
我还设置了一个时间触发器,每晚运行 refreshData()
.
每天早上我收到一封电子邮件,告诉我发生了以下错误: Cannot call SpreadsheetApp.getUi() from this context.
在时间触发器中没有UI是有意义的,但是如何检测我何时触发并阻止此代码运行?
我试过了:
使用 try
/ catch
=>围绕有问题的代码
-
错误未被捕获
-
根据当前时间检查这可能是用户打开文件还是时间触发器运行=>似乎无法确定代码运行的时区 .
1 回答
您可以使用event object from time trigger确定该功能是否被用户触发或运行,如下所示: