Google Apps 脚本中的简单弹出窗口或对话框

sba*_*den 7 popup popupwindow google-apps-script

我正在寻找简单的代码,在我点击提交按钮时在我的 Google Apps Script 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;
     }
Run Code Online (Sandbox Code Playgroud)

m5k*_*han 6

由于UiApp已折旧,因此应使用HTMLService来创建自定义用户界面。

要提示简单的弹出窗口显示消息,请使用Ui 类的alert方法

var ui = DocumentApp.getUi();
ui.alert('Hello world');
Run Code Online (Sandbox Code Playgroud)

将提示带有 hello world 和 ok 按钮的简单弹出窗口。

要在Dialog中显示自定义的html模板,使用HTMLService创建模板,然后将其传递给showModalDialogUi类的方法

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

HtmlService.createHtmlOutputFromFile允许您显示单独文件中的 html。查看文档


Tre*_*pen 2

您尝试过使用 zIndex 吗?它将面板放置在所有其他面板之上......

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

x = 距应用程序左侧部分的面板位置 y = 距应用程序顶部部分的面板位置 zIndex = 面板将出现在的“层”。您可以使用“1”、“2”、“3”等堆叠面板。位置 = 您的面板将位于由 (x,y) 表示的固定位置

可见性设置为 false,直到您单击“提交”,然后让提交按钮的客户端处理程序使 popupPanel 可见。当您单击 popupPanel 上的按钮时,让客户端处理程序再次将可见性设置为 false,它将消失。

另一件事,我注意到您获得了活动应用程序,然后创建了一个新应用程序。您不需要创建新的应用程序...只需在应用程序中创建新面板即可。

希望这可以帮助!