我开了一个新问题:example code of dialog box makes a mess
我正在尝试在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我得到:
这次我错过了什么?
答案 0 :(得分:1)
您是否阅读过有关deploying a webapp的文档,这适用于作为独立应用程序运行的所有类型的Web应用程序。 要运行此示例,您需要保存一个版本并部署它以获取其工作网址。(还有一个特殊的'dev'网址来测试代码的最新版本。
这是此演示的网址,我在其中添加了一些详细信息:link
这是演示代码:
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;
}
那说(并且严格地说在我看来)这个小部件非常难看...... ;-) popups可以用一些styleAttributes更好看。
答案 1 :(得分: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;
}