Javascript 防止空白页和在表中显示数据

Javascript 防止空白页和在表中显示数据,javascript,html,google-apps-script,google-sites,Javascript,Html,Google Apps Script,Google Sites,我在Google脚本中有一个工作代码,它是在Index.HTML和code.gs上合成的,如果你在你的Google应用程序脚本中测试它,实际上这个代码是工作的 Index.HTML <!DOCTYPE html> <html> <head> <base target="_top"> <script> function displayMessage() { var searchTerm; searc

我在Google脚本中有一个工作代码,它是在
Index.HTML
code.gs
上合成的,如果你在你的Google应用程序脚本中测试它,实际上这个代码是工作的

Index.HTML

<!DOCTYPE html>
<html>
<head>
<base target="_top">

<script>
   function displayMessage() {
        var searchTerm;
        searchTerm = document.getElementById('idSrchTerm').value;
        console.log('searchTerm: ' + searchTerm );
         google.script.run.withSuccessHandler(handleResults).processForm(searchTerm.replace("'","\'")); 
       } 


          function handleResults(results){      
         var length=results.length; // total elements of results
          var table = document.getElementById('output');
         for(var i=0;i<length;i++)
         {
         var item=results[i];
         item=item.split("|~|");

        }
        document.writeln("End of results...");
       }
</script>

<style>
table, th, td {
    border: 1px solid black;
}
</style>

</head>

<body>


<div class="container">
    Search: <input type="text" id="idSrchTerm" name="search">
    <input type="button" value="Search" name="submitButton" onclick="displayMessage()"/>
</div> 

<table id ="output">
<tr>
<th>File Details</th>
</tr>
<tr>
<td>
<script>

    function handleResults(results){      
         var length=results.length; // total elements of results
         for(var i=0;i<length;i++)
         {
         var item=results[i];
         item=item.split("|~|"); // split the line |~|, position 0 has the filename and 1 the file URL
         document.writeln("<b><a href='"+item[1]+"' target='_blank'>"+item[0]+"</b></a> (Last modified: "+item[2]+")<br/><br/>"); // write result
        }
        document.writeln("End of results...");
       }

</script>
</td>
</tr>
</table>

</body>
</html>
这段代码工作得很好,但每次我搜索数据时,它的输出都会将我转移到一个带有搜索结果的新页面

我的问题是如何在我的表标记中显示数据

这是数据应该放在哪里的图像


使用Ajax可能会解决您的问题,而不是使用
google.script.run
我不知道这是否可行,先生,我正在尝试将此代码嵌入我的谷歌网站。所以我需要谷歌应用程序脚本
function doGet(e) { // main function

  var template = HtmlService.createTemplateFromFile('index.html');
  return template.evaluate().setTitle('Search Drive').setSandboxMode(HtmlService.SandboxMode.IFRAME);
}


function SearchFiles(searchTerm) {
  var searchFor ="fullText contains '" + searchTerm + "'"; 
  var names = [];
  var files = DriveApp.searchFiles(searchFor); 
  while (files.hasNext()) {
    var file = files.next();
    var fileId = file.getId();
    var lm = file.getLastUpdated();
    var owner = file.getOwner().getName();
    var filesize = file.getSize();
    var name = file.getName() +"|~|"+file.getUrl()+"|~|"+lm+"|~|"+owner+"|~|"+filesize;  
    names.push(name); 
    Logger.log(file.getUrl());
  }
  return names; 
}


function processForm(searchTerm) {
  var resultToReturn;
  Logger.log('processForm was called! ' + searchTerm);
  resultToReturn  = SearchFiles(searchTerm); 
  Logger.log('resultToReturn: ' + resultToReturn);
  return resultToReturn; 
}