Ruchi Agarwal
Ruchi Agarwal

Reputation: 541

How to call google script function from a HTML file?

I have created a web page through the Html Services api in google apps script. In the script, I have one google script(.gs) file and two html files(.html). This script is published on web. To display html file on web I used following function in .gs file:

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

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

doGet() is returning this Html file on the web. Now I want to display another Html File by replacing this file. So, I used following in 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>

This htmlFile_1 is not calling the doProcess(), that would return the htmlFile_2.' Any suggestion to implement this?

Upvotes: 2

Views: 13319

Answers (1)

user1623237
user1623237

Reputation: 223

You need to include an onSuccess (and optionally an onFailure) handler on this line of code

google.script.run.doProcess();

See below

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>

Upvotes: 3

Related Questions