1

我开了一个新问题:对话框的示例代码搞得一团糟

我正在尝试在https://developers.google.com/apps-script/reference/ui/dialog-box中运行示例

function doGet() {
    var app = UiApp.createApplication();
    // Create a dialog box.
    var dialog = app.createDialogBox();
    // Add a label to the dialog and set the dimensions and position.
    dialog.setPopupPosition(100, 100).setSize(500, 500).show();
    // Show the dialog. Note that it does not have to be "added" to the UiInstance.
    dialog.show();
    return app;
}

什么也没有发生。我错过了什么?

编辑:

我不知道部署为 webapp 的必要性,但现在在将上面的代码作为 webapp 运行后,我遇到了另一个问题: 发生了什么

这次我错过了什么?

4

2 回答 2

1

您是否阅读过有关部署 webapp的文档,这适用于作为独立应用程序工作的所有类型的 webapp。要运行此示例,您需要保存一个版本并将其部署以获取其工作 url。(以及一个特殊的“dev”url 来测试您的代码的最新版本。在此处输入图像描述

这是这个演示的网址,我在其中添加了一些细节:链接

这是演示代码:

function doGet() {
    var app = UiApp.createApplication().setTitle('dialogBoxTest');
    var abs = app.createAbsolutePanel().setWidth('100%').setHeight('100%');
    abs.add(app.createLabel('demo test').setStyleAttributes({'fontSize':'25pt','padding':'30px'}));
    app.add(abs);
    // Create a dialog box.
    var dialog = app.createDialogBox(true,true).setHTML('DialogBox').setAnimationEnabled(true);
    // Add a label to the dialog and set the dimensions and position.
    dialog.add(app.createLabel('hello world'));
    dialog.setPopupPosition(100, 100).setSize(100, 100);// no need to call show() twice as in the example ...
    // Show the dialog. Note that it does not have to be "added" to the UiInstance.
    dialog.show();
    return app;
}

也就是说(严格来说,在我看来)这个小部件非常丑陋...... ;-) 弹出窗口可以通过一些 styleAttributes 获得更好的外观。

于 2013-06-16T13:07:40.767 回答
0

你什么都没有。您所说的代码示例直接来自 Google 为 Google Apps 脚本提供的在线文档的副本。

正如 Serge insas 所建议的那样,实际上产生了 2 个问题,即编号 2917 和 2097,已被接受,官方解决方案仍在进行中。虽然有人说 CreateDialogBox 方法创建的对话框在设置大小时存在渲染问题。看到这个评论:

https://code.google.com/p/google-apps-script-issues/issues/detail?id=2907#c1

因此,您可以在对话框内创建一个元素以强制对话框为特定大小:

代码示例:

function DialogBoxPopUp(){

  // Gets the active UiInstance.
  var app = UiApp.getActiveApplication();

  var dialog = app.createDialogBox();

  dialog.setPopupPosition(150, 150)
  //.setSize(500, 500)
  //instead create an element inside the DialogBox that is the desired size.
  .setHTML('<div id="container" style="width:500px;height:500px">This is just one example</div>')
  .show();

  return app;
}

尽管这可能会带来其他看不见/未知的问题,但请检查您的工作。PopupPanel 也可以是一个选项,并且记录的示例有效。

https://developers.google.com/apps-script/reference/ui/popup-panel

这是另一个简单的示例,它提供了一种使用标题面板自动提供某种样式的简单方法。

function MakePopupPanel(){

  // Gets the active UiInstance.
  var app = UiApp.getActiveApplication();

  var popUp = app.createPopupPanel();

  popUp.add(app.createCaptionPanel("caption panel in a popup"))
  .setWidth("100px").setHeight("100px")
  .setPopupPosition(100, 100);

  popUp.show();

  return app;
}
于 2013-09-08T04:15:59.973 回答