javascript - 由于浏览器消息未关闭,防止谷歌应用脚本上的“超过最大执行时间”失败电子邮件
问题描述
背景:
我有多个电子表格,在某些情况下,会向用户弹出一个浏览器简单消息框。
问题:
用户忘记单击“确定”的情况并不少见,这导致我收到一封“超过最大执行时间”的失败电子邮件。
问题:
如果只有这种故障,有没有办法不收到电子邮件?
有没有办法在定义的时间(比如 10 秒)后自动关闭消息框?
解决方案
回答:
无法关闭通知电子邮件,但您可以设置 Gmail 过滤器以强制这些电子邮件跳过收件箱。
也无法以编程方式模拟被单击的 UI 警报,也无法在 10 秒后自动关闭该框。您可以改为使用 toast 消息来通知用户,而不是使用消息框作为解决方法。
处理失败的电子邮件:
- 在失败通知电子邮件中,第一段将显示如下内容:
您的脚本 Script Name 最近未能成功完成。故障摘要如下所示。要为此脚本配置触发器,或更改接收未来失败通知的设置,请单击此处。
点击“点击这里”链接可以触发,但如您所见,您只能更改这些电子邮件的频率,而不能将其关闭:
要从收件箱中自动删除这些邮件,请前往https://mail.google.com并在搜索栏中输入以下内容:
from:apps-scripts-notifications@google.com "Script name"
替换Script name
为您收到通知的脚本的名称。确保将它们放在引号内。
接下来,单击搜索栏右侧的向下箭头 (▼),然后单击Create filter
。
在这里,选择您的行为:我建议您选择Skip the Inbox (Archive it)
是否要保留电子邮件而不会使收件箱混乱,或者根本Delete it
不希望看到它们。
Also apply filter to matching conversations.
如果您的收件箱中已经有很多,您也可以选中旁边的框。
单击Create filter
即可完成 - 您将不再收到这些电子邮件。
敬酒
正如我之前提到的,不可能超时或自动关闭消息框。
但是,如果您只想通知用户一些信息,并且不需要让他们单击确定,则可以改为在 Sheets 中显示一条 toast 消息:
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.toast('Thanks for doing the thing!', 'Title', 10);
这将如下所示:
参考:
推荐阅读
- java - 我无法使用 AssertJ 测试 Swing GUI
- android - 退出全屏使应用程序空白
- javascript - jQuery从变量中获取值
- ironpython - 手动刷新时,很少有按需数据表未在 spotfire 报告中显示数据
- ruby-on-rails - Rails foreign_key 不是 id
- django - 在测试用例中创建新用户
- react-native - Expo Snack 中的无效覆盖
- spring-boot - 基本身份验证不适用于 Spring Boot 中带有 Active Directory LDAP 的 SOAP Web 服务
- sql - T-SQL 查找局部最大值 - 运行值最大值的总和
- laravel - Laravel 按相关模型数量过滤模型