我正在重写这个问题,以便更容易回答(我希望)。我希望在类(原型)中有一个Button,但我希望处理程序也在类中。如果处理程序在类之外但在内部找不到它,则工作正常。
提前感谢您的帮助。
function myWindow(message) {
this.SS = SpreadsheetApp.getActiveSpreadsheet();
this.App = UiApp.createApplication();
this.App.setTitle(message);
this.Panel = this.App.createVerticalPanel();
this.App.add(this.Panel);
this.Button = this.App.createButton('OK', this.App.createServerHandler('handler'));
};
myWindow.prototype = {
constructor: myWindow,
handler: function (e)
{
Browser.msgBox('Click');
},
show: function()
{
this.Panel.add(this.Button);
this.SS.show(this.App);
}
};
function Run() {
var theWindow = new myWindow('Hello World');
theWindow.show();
}
单击“确定”按钮时出现的错误是“未找到脚本函数处理程序”
答案 0 :(得分:0)
好的我已经做了很多阅读,虽然没有明确说明,但似乎createServerHandler只是为全局函数设计的,而UIAPP中没有提供任何其他功能。这意味着我所要求的是无法完成的。
解决方案必须看起来像
function myWindow(message) {
this.SS = SpreadsheetApp.getActiveSpreadsheet();
this.App = UiApp.createApplication();
this.App.setTitle(message);
this.Panel = this.App.createVerticalPanel();
this.App.add(this.Panel);
this.Button = this.App.createButton('OK', this.App.createServerHandler('handler'));
}
myWindow.prototype = {
constructor: myWindow,
show: function() {
this.Panel.add(this.Button);
this.SS.show(this.App);
}
};
function handler(e) {
Browser.msgBox('Click');
};
function Run() {
var theWindow = new myWindow('Hello World');
theWindow.show();
};
这不是闪光但可行。