在谷歌Apps脚本简单的弹出窗口或对话框(Simple popup or dialog box in

2019-06-27 05:22发布

我在寻找简单的代码,增加了谷歌应用脚​​本UI一个弹出窗口出现时,我打一个提交按钮。 弹出框会显示一条消息,并有一个按钮来关闭弹出。

我看了所有的地方 - 一切都显得那么复杂,的确方式比我更需要它做的事。

这是当前代码我对提交按钮。

     function doGet() {
       var app = UiApp.createApplication();
       app.setTitle("My Logbook");

       var hPanel_01 = app.createHorizontalPanel();
       var vPanel_01 = app.createVerticalPanel();
       var vPanel_02 = app.createVerticalPanel();
       var vPanel_03 = app.createVerticalPanel();

       var submitButton = app.createButton("Submit");

       //Create click handler
       var clickHandler = app.createServerHandler("submitData");
       submitButton.addClickHandler(clickHandler);
       clickHandler.addCallbackElement(hPanel_01);


       ////Test PopUp Panel
       var app = UiApp.getActiveApplication();
       var app = UiApp.createApplication;
       var dialog = app.createDialogBox();
       var closeHandler = app.createClientHandler().forTargets(dialog).setVisible(false);
       submitButton.addClickHandler(closeHandler);

       var button= app.createButton('Close').addClickHandler(closeHandler);

       dialog.add(button);
       app.add(dialog);
       //////



       return app;
     }

Answer 1:

您可以选择使用zIndex的尝试? 它把上面所有的其他小组的小组...

var popupPanel = app.createVerticalPanel().setId('popupPanel')
    .setVisible(false)      
    .setStyleAttribute('left', x)  
    .setStyleAttribute('top', y)        
    .setStyleAttribute('zIndex', '1')
    .setStyleAttribute('position', 'fixed');

从你的应用Y =面板位置的从您的应用zIndex的顶部部分中的左部X =面板位置=的“层”您的面板上会出现。 可以叠加使用“1”的面板,“2”,“3”等位置=你的面板将在由表示的固定位置(x,y)的

直到你点击提交,然后为您的提交按钮使popupPanel可见的客户端处理程序可见性设置为false。 当你点击你的popupPanel按钮,让客户端处理程序设定能见度为false再次,它会消失。

还有一两件事,我注意到你的主动应用,然后创建一个新的应用程序。 你并不需要创建一个新的应用...您的应用程序里面只是新面板。

希望这可以帮助!



Answer 2:

您可以使用一个对话框弹出。 将按钮添加到对话框框。 添加一个设置对话框中不可见的,一旦你点击该按钮的客户端处理程序

var app = UiApp.createApplication;
var dialog = app.createDialogBox();
var closeHandler = app.createClientHandler().forTargets(dialog).setVisible(false);

var button= app.createButton('Close').addClickHandler(closeHandler);

dialog.add(button);
app.add(dialog);

这应该帮助。

编辑

新增 “()” 后.createClientHandler。 这应该删除相关类型错误的问题:找不到功能createDialogBox在目标函数createApplication(){/ * * /}



Answer 3:

由于了UiApp折旧, HTMLService应该用于创建自定义的用户界面。

要提示简单弹出显示消息,使用alert的方法UI类

var ui = DocumentApp.getUi();
ui.alert('Hello world');

将提示与世界你好和ok键简单弹出。

在对话显示定制HTML模板,使用HTMLService来创建模板,然后将其传递到showModalDialog UI类的方法

var html = HtmlService.createHtmlOutput("<div>Hello world</div>").setSandboxMode(HtmlService.SandboxMode.IFRAME);
DocumentApp.getUi().showModalDialog(html, "My Dialog");

HtmlService.createHtmlOutputFromFile允许您显示HTML是在一个单独的文件。 看到文档



Answer 4:

弹出窗口 - 使用这样的:

      var table = app.createFlexTable();
      table.setStyleAttribute("position", "absolute");
      table.setStyleAttribute("background", "white");      

添加项目表和隐藏和显示需要。



文章来源: Simple popup or dialog box in Google Apps Script