我正在尝试从Google表单的插件中使用的函数中显示DialogBox
。
function onOpen() {
FormApp.getUi()
.createMenu('MyAddon')
.addItem('Test', 'myTest')
.addToUi();
}
function myTest() {
Logger.log("--> called");
var app = UiApp.createApplication(); // or UiApp.getActiveApplication()
var dialog = app.createDialogBox();
dialog.setPopupPosition(100, 100).setSize(500, 500);
dialog.show();
return app;
}
与FormApp.getUi().showModalDialog(content, title)
不同,调用使用DialogBox
的函数但不执行任何操作(不显示任何内容)。
有没有人成功在Google插件中显示这样的组件?
使用DialogBox
的目的是能够设置一个关闭处理程序,使用.showModalDialog(...)
(返回void
但不能引用创建的对话框)是不可能的。
我没有在插件中看到用于UI的Google API中的任何其他方式来显示对话框,并在关闭时显示回调。
答案 0 :(得分:-1)
从服务器端代码调用此函数(选择该菜单项时会发生这种情况)如果刚刚从函数返回,则不会显示此Ui。您需要使用SpreadsheetApp.getUi().showModalDialog(uiInstance, 'My add-on');
等方法让用户显示它。
如果您要查找的所有内容都是在对话框关闭后采取行动的方法,请考虑使用alert dialogs或prompt dialogs。这些将返回一个对象,可以查询该对象以查看用户选择了哪个按钮,或者在对话框中输入了哪些文本。