如何在 Apps 脚本 (.gs) 中获取 URL 并将其传递给 .html 脚本?

How do I grab URL in Apps Script (.gs) and hand it to a .html script?

这是我的第一个问题,我对 js 和 html 还很陌生,所以如果我遗漏了一些明显的东西,请原谅。

目标:我想创建一个脚本,在您的 Google 驱动器中创建一个文件夹,但前提是该文件夹尚不存在。在该文件夹中,它应该创建一个包含某些信息的 .txt。 之后,我想要一个新标签自动打开新创建的 txt 文件的 URL。

如果我在我的 .html 中插入一个正常的 URL(如“https://www.google.com”),一切都很好。然而,我被困在 Apps 脚本将新创建文件的抓取 Url 移交给我的 html.

的部分

感谢任何帮助!

Google Apps 脚本代码 (Code.gs):

function myFunction() {

  var FData = "Very important Data"       
  
  var destFolder = DriveApp.getFoldersByName("Folder");     //create Drive folder if not already created
  var destFolder = destFolder.hasNext() ? 
    destFolder.next() : DriveApp.createFolder("Folder");

  var fileName = "Status.txt";                              //create txt file in that folder and add data to it
  var newFile = destFolder.createFile(fileName,FData);
  var url = newFile.getUrl();                               //?GIVE THIS URL TO openUrl.html?

  var htmlOutput = HtmlService.createHtmlOutputFromFile('openUrl').setHeight(100);
  SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'Opening...');
}

HTML (openUrl.html):

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
     var urlToOpen = url;                     //insert grabbed Url here
     var winRef = window.open(urlToOpen);
     google.script.host.close();
    </script>
  </head>
  <body>
    
  </body>
</html>

在你的脚本中,做如下修改怎么样?

Google Apps 脚本端:

function myFunction() {
  var FData = "Very important Data"
  var destFolder = DriveApp.getFoldersByName("Folder");
  var destFolder = destFolder.hasNext() ? destFolder.next() : DriveApp.createFolder("Folder");
  var fileName = "Status.txt";
  var newFile = destFolder.createFile(fileName, FData);
  var htmlOutput = HtmlService.createTemplateFromFile('openUrl');
  htmlOutput.url = newFile.getUrl();
  SpreadsheetApp.getUi().showModalDialog(htmlOutput.evaluate().setHeight(100), 'Opening...');
}

HTML & Javascript 边:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
     var urlToOpen = "<?!= url ?>";
     var winRef = window.open(urlToOpen);
     google.script.host.close();
    </script>
  </head>
  <body>
  </body>
</html>
  • myFunction() 为 运行 时,HTML 使用 HTML 模板打开一个对话框,其中包括 url

参考: