如何从HTML文件中调用google脚本功能?

时间:2012-12-18 07:59:48

标签: google-apps-script

我已经通过google apps脚本中的Html Services api创建了一个网页。在脚本中,我有一个google脚本(.gs)文件和两个html文件(.html)。此脚本在Web上发布。要在Web上显示html文件,我在.gs文件中使用了以下函数:

function doGet() {   //Published on web
  return HtmlService.createTemplateFromFile('<htmlFile_1>').evaluate();
}

function doProcess() {
  return HtmlService.createTemplateFromFile('<htmlFile_2>').evaluate();
}

doGet()将在Web上返回此Html文件。现在我想通过替换此文件来显示另一个Html文件。所以,我在htmlFile_1中使用了以下内容:

//htmlFile_1.html

<html>
  <head>
  <script>
    function loadMainHtmlPage(){
       google.script.run.doProcess();     //calling another function in .gs file
       setTimeout(function(){hello()},4000);

    }

    function hello(){
    alert("hiii");
     document.getElementById("loading").style.display="none";}

  </script>
</head>

<body onload="loadMainHtmlPage();">
   <div id="loading" style="display:block;">
      <img src="http://commondatastorage.googleapis.com/kickoff/loading.gif"/>
 </div>
  </body>

</html>

这个htmlFile_1没有调用doProcess(),它会返回htmlFile_2。 有任何建议来实现这个吗?

1 个答案:

答案 0 :(得分:2)

您需要在此行代码中包含onSuccess(以及可选的onFailure)处理程序

google.script.run.doProcess();

见下文

Server code
function getSuperHero() {
  return {name: "SuperGeek",  catch_phrase: "Don't worry ma'am, I come from the Internet" };
}

Client code
<script>
  function onSuccess(hero) {
    alert (hero.catch_phrase);
  }
  google.script.run.withSuccessHandler(onSuccess).getSuperHero();
</script>