当用户从包含注释的电子表格单元格中删除一个值时,我想显示一个 UiApp。
在以下函数上设置了 onEdit 触发器:
function showDialogue() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var r = ss.getActiveCell();
if (r.getValue() != '') return;
if (r.getValue() == '' && r.getComment() != '') {
var app = UiApp.createApplication();
var label = app.createLabel('If you can see this, it has worked correctly.');
app.add(label);
var button = app.createButton('Click to Close');
app.add(button);
var handler = app.createServerHandler('myClickHandler');
handler.addCallbackElement(label);
button.addClickHandler(handler);
r.setValue(r.getRow());
ss.show(app);
}
}
function myClickHandler(e) {
var app = UiApp.getActiveApplication();
app.close();
return app;
}
当我这样做时它工作正常,但如果另一个用户打开电子表格,UiApp 将无法正确显示。UiApp 窗口打开,但不显示任何小部件,并打开另存为对话框,提示用户保存 userAppPanel。
我已经在这个简化的电子表格中复制了这个问题,该电子表格与任何拥有链接(可以编辑)的人共享。