Google Sheets Apps Script密码验证脚本优化:持续请求密码直至正确输入
优化Google Sheets密码验证脚本:防止弹窗关闭后脚本终止
原脚本的问题在于,当用户点击密码弹窗的外部区域或取消按钮时,ui.prompt().getResponseText()会抛出序列错误,直接终止循环和脚本执行。要实现"始终运行直到输入正确密码"的需求,需要捕获这个异常并让循环继续执行。
修改后的代码如下:
function contrasena() { const ui = SpreadsheetApp.getUi(); const codigoCorrecto = "Centro Victoria"; let guardarIntento = ""; while (guardarIntento !== codigoCorrecto) { try { guardarIntento = ui.prompt("Por favor ingrese la contraseña").getResponseText(); } catch (e) { // 捕获用户关闭弹窗/点击取消的异常,不修改guardarIntento,循环继续 ui.alert("Debe ingresar la contraseña para acceder."); } } ui.alert("Contraseña Confirmada"); }
关键修改说明:
- 新增
try-catch块包裹弹窗调用逻辑,捕获用户关闭弹窗时触发的异常 - 异常分支中添加提示,引导用户必须输入密码
- 异常发生时
guardarIntento保持原值(不等于正确密码),循环会再次触发密码弹窗 - 使用
!==替代!=,进行严格相等判断,避免类型转换导致的意外问题
配合你的onOpen初始化函数,用户每次打开表格时都会强制进入密码验证流程,直到输入正确密码为止,不会因为关闭弹窗而终止脚本。
内容的提问来源于stack exchange,提问作者Alexander
相关产品推荐
相关产品推荐

