确保谷歌表格脚本按钮一次只运行一次



我在工作表上有一个类似于文档中描述的按钮。

问题是我想避免用户一次多次单击它(因为脚本发送消息(。

我注意到绘图按钮不会将事件传递给函数。有没有办法做到这一点?我一直在寻找但没有找到答案,欢迎任何建议。

是的,可以使用脚本属性

例如,您在脚本的第一次调用中设置了一个脚本属性。在以下调用中,脚本检查属性是否已存在,如果存在,则不会运行其余代码。

样本:

function onlyOnce(){
var scriptProperties = PropertiesService.getScriptProperties();
var myProperty = scriptProperties.getProperty('already_called');
if (!myProperty){
showMessageBox();
scriptProperties.setProperty('already_called', 'YES');
}
}
function showMessageBox() {
Browser.msgBox('You clicked it!');
}

短时间去抖

我想我会尝试这种方式,以便它在短时间内自动重置。

function onlyOnceInAShortTime() {
var cache = CacheService.getUserCache();
var cached = cache.get("already_called");
if(cached=="YES") {
Browswer.msgBox('You click it');
return;
}
cache.put('already_called', 'YES' , 20);//remains for twenty seconds
}

类缓存

最新更新