我已经通过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。 有任何建议来实现这个吗?
答案 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>