javascript - 使用 setValue() 时 InstallableTriger 不会触发
问题描述
我目前正在从事 GAS 项目,并面临一个奇怪的问题。
我已经设置了一个可安装的触发器来检测 A 列中的任何变化,并启动一个自定义函数 (installableOnEdit)。如果已完成修改的行包含数据,我会调用自定义函数 (GetProductInfo) 来进行 API 调用,该调用将在不同的单元格中写入值。
如果不是,我只是清除其他一些行。
我的问题是,如果我在 A 列中手动插入数据,那么它就像一个魅力,但如果我使用一个函数在 A 列中写入 .setValue (来自其他自定义函数),触发器不开火。
这是我的代码:
function installableOnEdit(e) {
var ss = SpreadsheetApp.getActive();
var editedRange = e.source.getActiveRange();
var editedRow = editedRange.getRow();
var editedCol = editedRange.getColumn();
var url = editedRange.getValue();
var urlColumn = 1;
if (editedCol == urlColumn){
if (url != ""){
GetProductInfo(url, "material", editedRow, editedCol);
}else {
//Reset material
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data").getRange(editedRow, editedCol+3).setValue("");
}
}
}
有任何想法吗 ?
解决方案
多亏了 tehhowch,我才能找到解决方案。
这并不适合所有人,但要使用触发器,我只需调用从 API (GetProductInfo) 检索信息的自定义函数,方法是在生成 .setValue() 的函数末尾调用它。
推荐阅读
- tkinter - 何时以及为什么需要将窗口坐标更改为画布坐标?
- vb.net - 试图在函数头中使用类型类型的变量 - 包含类型
- python - 从 Python 与 Node.js 进程通信
- php - php `require()` 一个包含另一个 `require()` 的文件
- python - 在 Heroku 上将自然语言工具包与 Django 结合使用 - - 错误:找不到“nltk.txt”
- r - list.files:正则表达式模式在 Windows 上不起作用?
- migration - 在现有物理主机上无法增加虚拟机容量时,配置虚拟机到另一台物理主机的实时迁移策略
- c++ - 计算复合类的哈希值
- swift - 在使用 Swift 而没有第三方框架的情况下查看生产中抛出的错误的好方法是什么?
- c++ - 正确使用函数的显式模板实例化?