将html页面添加到Web应用程序

时间:2017-02-09 02:16:07

标签: web-applications google-apps-script

我在编程方面很新,主要是为了好玩,很抱歉,如果这个问题太明显了,那么如果你能回答好像我知之甚少就会感激... :)

所以我正在尝试使用Google Apps脚本创建一个网络应用程序,但我想首先在Dreamweaver中设计它并将该html用于应用程序(因为Google Scripts中不再存在“Build A UI”选项) 。 应用程序需要能够读取和修改原始html,以响应用户的操作。

我当时想要做到这一点,但当然没有用,

function doGet(e) {
var app = UiApp.createApplication();
var page = HtmlService.createHtmlOutputFromFile('MyHtml');
app.add(page);
return app;
}

当我写return page;确实有效,但是当我使用var app = UiApp.getActiveApplication();

时,我在其他功能中无法到达这些字段

=================================编辑========== =======================

以下是我需要Web应用程序来包含html页面的示例:

function showMyEmail() {
var app = UiApp.getActiveApplication();
var email = Session.getActiveUser().getEmail();

// Assuming 'email_lbl' is the ID of the already existing target label I want to modify.
app.getElementById('email_lbl').setText('Your email is: ' + email);
return app;
}

不幸的是我无法像那样使用它,因为“app”不包含任何名为“email_lbl”的对象。 因此,我需要找到一种方法将html文件嵌入到应用程序中,以便稍后在其他服务器端函数中使用UiApp.getActiveApplication();

另外 - 我的第一个例子显然返回了一个空白页面,因为“app”不包含“页面”。 (同样的问题当然......)

=================================编辑========== =======================

有什么建议吗?创造性的解决方案?我在这里想念的东西?

对不起我是多余的。我不知道如何更好地解释......

感谢您的关注!! 埃亚

1 个答案:

答案 0 :(得分:1)

您将按照指出返回HtmlService本身。当服务器端运行应用程序脚本时,您的Html页面将处理所有客户端逻辑。因此,任何需要访问documentwindow的JavaScript都需要位于您的html页面中。由于它是一个webapp,因此您可以访问google.script.run以在脚本中运行代码。

在以下网址查看有关此内容和网络应用的文档:

  

https://developers.google.com/apps-script/guides/html/reference/run
  https://developers.google.com/apps-script/guides/web

code.gs

function doGet(e) {
  var page = HtmlService.createHtmlOutputFromFile('MyHtml');
  return page;
}

function square(val){
  return val*val
}

MyHtml.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>    
    <p id="val"></p>
  </body>
  <script>
    google.script.run.withSuccessHandler(showVal).square(5);  

    function showVal(returnVal){
      document.getElementById('val').textContent = returnVal
    }
  </script>
</html>