使用Apps Script GUI构建器时出现问题

时间:2012-05-15 16:45:50

标签: google-apps-script

因此,我正在研究在电子表格中运行的项目结帐系统的gui。它做了它应该做的一切,并没有返回任何空的东西,通常我会对它的结果非常满意。

然而,每当我按下提交按钮时,我都会遇到“遇到错误,发生意外错误”,之后其余代码按预期运行。每隔一段时间我就不会得到任何错误,但绝大部分时间它都会引发错误。

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menuEntries = [{name: "Equipment Checkout", functionName: "testing"}];
  ss.addMenu("Equipment Checkout", menuEntries);
}

function testing(){
  var app = UiApp.createApplication();
  app.add(app.loadComponent("ImprovedCheckout"));
  var doc = SpreadsheetApp.getActiveSpreadsheet();
  doc.show(app);
}


function submitted(e){
  Browser.msgBox(e.parameter.requestor);
}

这是我的代码的最简单版本。 我正在使用gui构建器来创建gui,我也使用它来创建事件处理程序。过去一小时我一直在撞墙,因为似乎错误发生在提交的第一行(e)之前,但直到我实际点击提交按钮才会发生。它不是每次都会发生,但它确实在大多数时间发生。

我想我正在处理构建器错误的事件但是关于该功能的信息很少哦。

4 个答案:

答案 0 :(得分:1)

我看到当人们为同一个按钮设置两个处理程序时会发生此错误。通常一个通过GUI编辑器,另一个通过代码。一个工作,另一个工作失败。这给人一种疯狂的印象,即它会抛出一个错误但仍有效。

但是既然你说这是你正在使用的确切代码。您是否在GUI构建器上设置了多个处理程序?我不知道即使可能,我也从不使用GUI构建器。

答案 1 :(得分:1)

图示出来! 我没有使用提交按钮,而是将其更改为常规旧按钮。看起来提交按钮试图同时运行其他东西。

看起来提交按钮有一些额外的规则和要求,但目前我只是使用普通按钮。

答案 2 :(得分:0)

我在运行您提供的代码时没有遇到任何问题。有两点需要注意:

  1. 确保您在ServerHandler中添加一个回调元素,其HTML名称为“requestor”,就像您在代码中使用一样。
  2. 添加回调元素时,请在GUI编辑器中使用该ID。姓名!= ID
  3. 此示例中需要设置名称和ID。

答案 3 :(得分:0)

当使用getElementbyId('id“)并且ID值错误时,我得到了同样的错误消息。脚本本身并没有真正停止,除了这个特定调用应该执行的操作之外,一切看起来都很正常(但这并不总是'显而易见')