因此,我正在研究在电子表格中运行的项目结帐系统的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)之前,但直到我实际点击提交按钮才会发生。它不是每次都会发生,但它确实在大多数时间发生。
我想我正在处理构建器错误的事件但是关于该功能的信息很少哦。
答案 0 :(得分:1)
我看到当人们为同一个按钮设置两个处理程序时会发生此错误。通常一个通过GUI编辑器,另一个通过代码。一个工作,另一个工作失败。这给人一种疯狂的印象,即它会抛出一个错误但仍有效。
但是既然你说这是你正在使用的确切代码。您是否在GUI构建器上设置了多个处理程序?我不知道即使可能,我也从不使用GUI构建器。
答案 1 :(得分:1)
图示出来! 我没有使用提交按钮,而是将其更改为常规旧按钮。看起来提交按钮试图同时运行其他东西。
看起来提交按钮有一些额外的规则和要求,但目前我只是使用普通按钮。
答案 2 :(得分:0)
我在运行您提供的代码时没有遇到任何问题。有两点需要注意:
此示例中需要设置名称和ID。
答案 3 :(得分:0)
当使用getElementbyId('id“)并且ID值错误时,我得到了同样的错误消息。脚本本身并没有真正停止,除了这个特定调用应该执行的操作之外,一切看起来都很正常(但这并不总是'显而易见')