javascript - 从 Web 应用程序传递变量并显示对话框

标签 javascript google-apps-script

我正在尝试从 Google Web 应用程序传递搜索词来显示结果。我在提交时遇到问题,出现黑屏。提交表单后,我希望它显示结果。主要代码在记录器中工作 - 现在我只是在 UI 上工作并使表单正常工作。

感谢任何帮助!

到目前为止,这是我的代码:

代码:

function SearchFiles() {
//Please enter your search term in the place of Letter
var searchterm ="'mysearchinput'";  \\ this would be the variable that is passed from the form on index.html
var searchFor ="title contains " + searchterm;
var owneris ="and 'youremail@yourdomain.com' in Owners";
var names =[];
var fileIds=[];
var files = DriveApp.searchFiles(searchFor + owneris);
while (files.hasNext()) {
  var file = files.next();
  var fileId = file.getId();// To get FileId of the file
  fileIds.push(fileId);
  var name = file.getName();
  names.push(name);

}

for (var i=0;i<names.length;i++){
Logger.log(names[i]);
Logger.log("https://drive.google.com/uc?export=download&id=" + fileIds[i]);

}

}

function doGet() {
return HtmlService.createHtmlOutputFromFile('index');
}

function processForm(formObject) {
Logger.log('I was called!');
 // here is where I would like to display results of searthterm.
}

HTML:

 <!DOCTYPE html>
 <html>
 <head>
 <base target="_top">
      <script>
    function handleFormSubmit(formObject) {
    google.script.run.withSuccessHandler(updateUrl).processForm(formObject);
  }
    function onFailure(error) {
    var div = document.getElementById('output');
    div.innerHTML = "ERROR: " + error.message;
  }
 </script>
 </head>
 <body>
 Hello, World!
 <form id="myForm" onsubmit="handleFormSubmit(this)">
  <input type="text" name="search">
  <input type="submit" value="Submit" />

</form>
<input type="button" value="Close"
    onclick="google.script.host.close()" />

搜索功能:

function SearchFiles() {
  Logger.log('I Searched Files');
  //Please enter your search term in the place of Letter
  var searchterm ="'Whatevertextisinthesearchbox'";
  var searchFor ="title contains " + searchterm;
  var owneris ="and 'Youremail@yourdomain' in Owners";
  var names =[];
  var fileIds=[];
  var files = DriveApp.searchFiles(searchFor + owneris);
  while (files.hasNext()) {
    var file = files.next();
    var fileId = file.getId();// To get FileId of the file
    fileIds.push(fileId);
    var name = file.getName();
    names.push(name);

  }

  for (var i=0;i<names.length;i++){
  //  Logger.log(names[i]);
  //  Logger.log("https://drive.google.com/uc?export=download&id=" + fileIds[i]);
    var filesreturned = {
      name:names[i],
      urls:"https://drive.google.com/uc?export=download&id=" + fileIds[i]
     
    }
     Logger.log(filesreturned.name + " - " + filesreturned.urls);
     return(filesreturned);
  }

}

最佳答案

根据您上面的评论,这里是简单地在单击按钮时显示 hello world 的代码。为了供您引用,我还添加了一段在 javascript 和 appscript 之间传递数据的代码。

Index.html 文件

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
    function displayMessage()
    {
    google.script.run.withSuccessHandler(helloWorld).parseDataFromAppscript();
    }

    function helloWorld(stringText)
    {
    document.writeln(stringText);    
    }
    </script>
  </head>
  <body>
    <input type="button" value="submitButton" name="submitButton" onclick="displayMessage()"/>    
  </body>
</html>

Code.gs文件

function doGet(e) {
  var template = HtmlService.createTemplateFromFile('Index');
  return template.evaluate()
      .setTitle('Hello World')
      .setSandboxMode(HtmlService.SandboxMode.IFRAME);
}

function parseDataFromAppscript()
{
  return "Hello World!";
}

要运行此程序,请转到发布 -> 部署为 Web 应用程序 -> 更新。然后点击最新代码

如果您需要任何部分的解释,请随时询问。我假设您已经了解 html javascript 和 google.script.run 方法。 :)

关于javascript - 从 Web 应用程序传递变量并显示对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41678397/

相关文章:

javascript - 在 knockout 绑定(bind)之前将值转换为小写

javascript - 如何捕获对特定传单层的点击

javascript - ReferenceError: "document"未定义

javascript - Jquery停止点击事件直到功能完成

javascript - 在覆盖层上添加事件监听器

javascript - Google Apps 脚本 (JavaScript) 正则表达式拆分电子表格单元格引用

javascript - 3个依赖于Javascript的下拉列表

google-apps-script - 使用 Google Apps 脚本从 Google Drive 中删除文件

javascript - 监听表单: JQuery中的变更事件

javascript - 如何创建相互依赖的下拉列表