0

这是我的简单应用脚本。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 retuns UiApp 然后 doPost 必须返回 UiApp。这是限制还是我做错了什么?

4

1 回答 1

1

你的怀疑是正确的;没有办法像这样在一个脚本中混合 HtmlService 和 UiApp。

编辑:让我进一步解释。当 UiApp 调用 doPost 时,它不尊重响应,除非它是 UiApp。但是,如果您将表单的操作显式设置为脚本 url,它将尊重响应,无论是 UiApp 还是 HtmlService,并完全替换页面。但是,无法同时在浏览器中同时显示 UiApp 和 HtmlService。

于 2012-10-23T23:45:09.583 回答