首页 > 解决方案 > 将 Google Apps 脚本变量传递给 HTML 脚本

问题描述

我在 Google 表格中设置了一个触发器,因此会在新的浏览器窗口中自动打开一个 URL。如果 URL 是硬编码的,则此方法有效。我希望 URL 是一个变量。如何将 URL 变量从 Apps 脚本传递到 HTML 脚本?我是新手编码员,所以请像我 5 岁一样解释。

如果 URL 是类似“ https://www.google.com ”的文本,则此功能有效

function openMap() {
  var maplink = SpreadsheetApp.getActiveSheet().getRange("B2").getValues();
  var js = "<script>window.open('https://www.google.com', '_blank', 'width=800, height=600');google.script.host.close();</script>";
  var html = HtmlService.createHtmlOutput(js)
    .setHeight(10)
    .setWidth(100);
  SpreadsheetApp.getUi().showModalDialog(html, 'Now loading.'); 
}

如果 URL 是变量,则此函数不起作用(我检查了 maplink 值及其有效 URL)

function openMap() {
  var maplink = SpreadsheetApp.getActiveSheet().getRange("B2").getValues();
  var js = "<script>window.open('maplink', '_blank', 'width=800, height=600');google.script.host.close();</script>";
  var html = HtmlService.createHtmlOutput(js)
    .setHeight(10)
    .setWidth(100);
  SpreadsheetApp.getUi().showModalDialog(html, 'Now loading.'); 
}

标签: javascripthtmlgoogle-apps-script

解决方案


您可以通过以下方式连接字符串:

...
var url = 'https://www.google.com';
var js = "<script>window.open('" + url + "', '_blank', 'width=800, height=600');google.script.host.close();</script>";
...

基本上

  • 您通过关闭引号来关闭硬编码字符串的第一部分
  • 添加动态变量+
  • 通过附加第二部分+并再次打开引号来继续硬编码字符串

我希望这很清楚!


推荐阅读