Передайте переменную скрипта Google Apps в скрипт HTML - PullRequest
0 голосов
/ 31 января 2020

В Google Sheets настроен триггер, поэтому URL-адрес автоматически открывается в новом окне браузера. Это работает, если URL-адрес жестко закодирован. Я хочу, чтобы URL был переменной. Как передать переменную URL из скрипта приложения в скрипт 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.'); 
}

1 Ответ

0 голосов
/ 31 января 2020

Вы можете объединить строки следующим образом:

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

В основном

  • вы закрываете первую часть вашей жестко закодированной строки, закрывая кавычки
  • добавьте динамическую переменную с помощью +
  • , продолжите жестко закодированную строку, добавив вторую часть с помощью + и снова открыв кавычки

Надеюсь, это понятно!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...