这是我简单的App脚本。 doPost什么都不返回。但是如果要发布的代码返回UIApplication,那么它就可以运行文件。
有关如何从doPost发送HTML输出的任何想法吗?
function doGet() {
var app = UiApp.createApplication();
var form = app.createFormPanel();
var flow = app.createFlowPanel();
flow.add(app.createTextBox().setName("textBox"));
flow.add(app.createSubmitButton("Submit"));
form.add(flow);
app.add(form);
return app;
}
function doPost(eventInfo) {
/* if i uncomment UiApp section then it works fine, But i want to send HTML, then the reponse is blank */
/*var app = UiApp.getActiveApplication();
app.add(app.createLabel("Form submitted. The text box's value was '" +
eventInfo.parameter.textBox + "'"));
return app;*/
/* the following returns just blank page */
outText = "<html><body><h1> Received Text = " + eventInfo.parameter.textBox+"</h1></body></html>";
return HtmlService.createHtmlOutput(outText);
}
所以问题是如何通过doPost发送HTML?看起来如果doGet重新调整UiApp,那么doPost必须返回UiApp。这是限制还是我做错了什么?
答案 0 :(得分:1)
你的怀疑是正确的;没有办法将HtmlService和UiApp混合在一个这样的脚本中。
编辑:让我进一步解释。当UiApp调用doPost时,它不会尊重响应,除非它是UiApp。但是,如果您将表单的操作设置为显式的脚本URL,它将尊重响应,无论是UiApp还是HtmlService,并完全替换页面。虽然没有办法在浏览器中同时显示UiApp和HtmlService。