使用Google Apps脚本刷新已部署的HTML网页

时间:2018-05-19 06:14:21

标签: html google-apps-script

我使用Google应用脚本的HTML服务创建了一个小型网站。 这是GAS代码



function doGet() {
   var t = HtmlService.createTemplateFromFile('form');
  t.email=Session.getActiveUser().getEmail();
   return t.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME);
}




这是HTML代码



<!DOCTYPE html>
<html>
   <head>
   <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
     <base target="_top">  
   </head>
   
    <body onLoad="addEventListeners()">
    <div class="container-fluid">
   <form id="form1"> 
     <label for="comp_indiv_name" id="company_individual_name" style="display: block" >2. COMPANY NAME</label>
      <input type="text" class="form-control" name="cName" required>
  <br>
   <input type="submit" class="btn btn-primary" value="Create Contract Now">
   </form>
   </div>
   
  
    
<script>
function addEventListeners() {
var condition=true;

document.getElementById('form1').addEventListener('submit', function(e){
e.preventDefault();
if(condition==true){condition=false;google.script.run.addData(this);}});

}
</script>
</body>

</html>
     
&#13;
&#13;
&#13;

HTML页面只有一个表单只有一个问题,当提交该表单时,该值将写入电子表格中。代码是

&#13;
&#13;
function addData(form)
{
  var ss=SpreadsheetApp.getActiveSpreadsheet();
  var sheet=ss.getSheetByName('test');
  sheet.getRange(5,5).setValue(form.cName)
  htmlPage();
}
&#13;
&#13;
&#13;

我想要的只是一旦值写在工作表上,这个HTML页面就会自动刷新。现在它只是保持原样。链接到HTML页面的是https://script.google.com/macros/s/AKfycbzavm6TPFOkIXj_V0uD8XIqMN-9w6jAgp_QgRkJXawFJF59rPU/exec

1 个答案:

答案 0 :(得分:1)

如果您真的想要刷新页面,而不仅仅是清除输入字段,那么我会添加一个包含您的Web应用程序URL的隐藏链接,然后在服务器代码完成后以编程方式“单击”它。

HTML

</form>

   <a id="linkToThisWebApp" href="https://script.google.com/macros/s/webAppID/exec" style="display:none">Hidden</a>
   <!-- <button onclick="reloadPg()">Test</button> -->
   </div>

脚本标记 - 具有成功处理程序的代码

<script>
function addEventListeners() {
var condition=true;

document.getElementById('form1')
  .addEventListener('submit',
  function(e){
    e.preventDefault();

    if(condition==true){
      condition=false;
      google.script.run
        .withSuccessHander(reloadPg)
        .addData(this);
    }


  });

}

window.reloadPg = function() {//Runs when server code has completed
  console.log('reloadPg ran');
  document.getElementById('linkToThisWebApp').click();//Click the link
}
</script>