Javascript 防止空白页和在表中显示数据
我在Google脚本中有一个工作代码,它是在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
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;
}