将模态对话框转换为对话框

时间:2014-08-15 14:51:13

标签: google-apps-script

在我的Google Docs应用程序脚本中,我正在尝试将ModalDialog转换为DialogBox,以便我可以利用DialogBoxes上的addCloseHandler()。

我的showModalDialog使用以下GS代码:

function showSheetPicker() {
   var html = HtmlService.createTemplateFromFile('sheetPicker').evaluate().
                setHeight(400).setWidth(600);
   DocumentApp.getUi().showModalDialog(html, "Select a Sheet");
}

但是,当我尝试将其转换为使用createDialogBox()时,我提出了以下内容:

function showSheetPicker() {
    var app = UiApp.createApplication();
    var autoHide = false;
    var modal = true;
    var dialog = app.createDialogBox(autoHide, modal);
    dialog.setPopupPosition(100, 100).setSize(650, 450).setHTML(html)
      .setTitle("Select a Sheet").createCloseHandler(handlingTheClose).show();
    return app;
  }

这会产生错误,告诉我:The script completed but the returned value is not a supported return type..

将ModalDialog转换为DialogBox需要做些什么才能利用addCloseHandler()?

1 个答案:

答案 0 :(得分:0)

这是一个显示dialogBox的文档示例,但结果非常令人失望......

function myFunction() {
  var app = UiApp.createApplication();
  var autoHide = false;
  var modal = true;
  var dialog = app.createDialogBox(autoHide, modal);
  dialog.setPopupPosition(100, 100).setSize(650, 450)
  .setTitle('hover me').setHTML('this is a test dialog');
  app.add(dialog).setHeight(450).setWidth(650);
  DocumentApp.getUi().showModelessDialog(app, "Select a Sheet")
}

我从未成功使用过这个小部件......祝你好运。

至于closeHandler,我怀疑你可以使用它,因为你无法关闭内部对话框,你将在这个例子中关闭ModelessDialog ...(再次祝你好运......我放弃了; - )