【发布时间】:2014-05-22 01:58:14
【问题描述】:
我有一个谷歌电子表格,其中提到了我们团队必须完成的一些任务。在一列下,我们维护任务状态。我添加了一个在电子表格更改时触发的 Google 应用脚本。脚本的主要工作是向某些 Google 邮件组发送有关更改的电子邮件通知。 在脚本中,我使用 Browser.msgBox() 来获取是/否的输入。现在,如果我更改电子表格中的状态,弹出窗口会在按钮单击时恢复,并使用按钮的值。如果其他人在电子表格中进行了更改,他会收到弹出窗口,但单击是/否按钮脚本不会恢复。
我的脚本看起来像这样:
function statusChangeNotification(e) {
var user = e.user;
var sheet = e.source.getActiveSheet();
var range = e.range;
var val = e.value;
if(sheet.getName() == RESPONSE_SHEET && isStatusField(range)){
if(val == STATUS_YES){
var sendMail = Browser.msgBox("Status Changed", "Do you wanna send a status notification mail?", Browser.Buttons.YES_NO);
if(sendMail == "yes"){
// code to send email using MailApp.sendEmail()
}
}
}
}
在class browser reference 下的 Google 开发人员中,他们提到了这一点
msgBox(标题、提示、按钮)
弹出一个带有给定标题、消息和指定的对话框 用户浏览器中的按钮。 msgBox 方法引发客户端 具有给定标题的消息框,显示给定消息 用户,并提供要显示的按钮选择。注意 此方法会导致服务器端脚本暂停。它会 用户清除对话框后自动恢复,但 JDBC 连接不会在暂停期间持续存在。
在为其他人调用 Browser.msgBox() 后脚本无法恢复的问题可能是什么?请提出一些替代方案来达到同样的效果。
【问题讨论】:
标签: google-apps-script google-sheets