gcc*_*ree 2 javascript google-sheets google-apps-script
我在可安装的 onEdit 触发器函数中调用 toast 消息,每当进行编辑时,该函数就会在 Google 表格界面中显示一条消息。对于登录其 Google 帐户的用户,该消息按预期显示,但当编辑者为匿名时,它不会显示在界面中。
我有一个启用了匿名编辑的表格文件(“知道链接的任何人”)。有一个独立的 Google Apps 脚本项目安装了一个可安装的 onEdit 触发器。函数中的所有内容都对匿名用户和登录用户成功执行,但 toast 消息除外,该消息仅对登录用户显示。
可安装的 onEdit 触发器设置为执行 showMessage 函数。
触发器安装:
ScriptApp.newTrigger('showMessage').forSpreadsheet('thefileid').onEdit().create();
Run Code Online (Sandbox Code Playgroud)
显示消息功能:
function showMessage(e) {
var msg = 'Some msg';
var title = 'Some title';
var file = e.source;
var activeSheet = file.getActiveSheet();
file.toast(msg, title);
// do other things
}
Run Code Online (Sandbox Code Playgroud)
Toast 消息显示给登录用户,而不是匿名用户。函数中的“其他事物”按每个人的预期工作。我正在寻找一种向匿名用户显示该消息的方法(或寻找某种方式向他们传达自动消息)。脚本项目是独立的而不是容器绑定的,所以我不能使用 Ui 类来通知他们。容器绑定脚本不是一种选择,因为此脚本的大小很大并且可以在多个文件上运行。
如果我的理解是正确的,这个答案怎么样?不幸的是,即使使用已安装的 OnEdit 事件触发器,在编辑匿名用户时,toast()也无法使用 Class Ui。因此,作为几种解决方法之一,我想建议使用图像。幸运的是,insertImage()可以用于这种情况。所以我正在使用这个解决方法。请将此视为几个答案之一。
在使用此脚本之前,请准备好要显示的图像。
在使用此脚本之前,请设置图像的文件 ID。并请安装 OnEdit 事件触发器以实现showMessage().
function showMessage(e) {
var fileId = "###"; // Please set the file ID of the image.
var sheet = e.source.getActiveSheet();
var blob = DriveApp.getFileById(fileId).getBlob();
var image = sheet.insertImage(blob, 2, 3);
Utilities.sleep(3000);
image.remove();
}
Run Code Online (Sandbox Code Playgroud)
如果我误解了您的问题并且这不是您想要的方向,我深表歉意。
| 归档时间: |
|
| 查看次数: |
1184 次 |
| 最近记录: |