将发布测试作为加载项时,onEdit简单触发器不起作用

时间:2017-08-09 06:06:19

标签: google-apps-script google-sheets google-apps-script-addon

我一直在讨论这个问题一段时间...我的文档绑定谷歌应用程序脚本在测试本地文档时效果很好。我试着测试发布>使用其他工作表作为附加组件进行测试。虽然我的onInstall()和onOpen()简单触发器工作正常,但我的onEdit函数却没有。

我在下面创建了这个简单的代码,以找到我的onEdit问题的根本原因,但即使这个简单的代码也行不通。我创建了一个带有绑定脚本的新工作表。然后我在另一张表中测试,onInstall()和onOpen()工作正常,opOpen菜单甚至调用了我的编辑功能,但是在编辑单元格时没有任何反应。任何帮助是值得赞赏的,我想让这个用简单的触发器而不是可安装的触发器,因为这看起来像一个非常简单的用例。

function onOpen(e) {
  var ui = SpreadsheetApp.getUi();

  ui.createMenu('Test Menu')
    .addItem('Hello', 'onEdit')
    .addToUi();
}

function onInstall(e) {
  onOpen(e);
}

function onEdit(e) {
  Logger.log('ran onedit!');
  SpreadsheetApp.getUi().alert('Hello');
}

1 个答案:

答案 0 :(得分:0)

谢谢我一定错过了文档中的这个简单的触发器限制。我实现了一个可安装的触发器,有点矫枉过正,但没有大事。

Ironically"测试时目前不支持可安装触发器。依赖于可安装触发器的功能将无法测试。"

这种限制似乎使测试附加脚本几乎不可能。

function createTriggers() {
  ScriptApp.newTrigger('onMyEdit')
    .forSpreadsheet(SpreadsheetApp.getActive())
    .onEdit()
    .create();
}

function onMyEdit(e) { 
  Logger.log('ran onedit!');
  SpreadsheetApp.getUi().alert('Hello');
}