我在工作表上有一个类似于文档中描述的按钮。
问题是我想避免用户一次多次单击它(因为脚本发送消息(。
我注意到绘图按钮不会将事件传递给函数。有没有办法做到这一点?我一直在寻找但没有找到答案,欢迎任何建议。
是的,可以使用脚本属性
例如,您在脚本的第一次调用中设置了一个脚本属性。在以下调用中,脚本检查属性是否已存在,如果存在,则不会运行其余代码。
样本:
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
}
类缓存