Передача переменной из скрипта Google в HTML - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь воспроизвести видео на основе случайного числа, сгенерированного в электронной таблице.так как листы Google не позволяют вам вставлять видео на YouTube напрямую, я пытаюсь сделать это через настраиваемое диалоговое окно.

Вот что у меня есть:

Код скрипта Google

    var PlayDes = sheet.getRange('g2').getValue();
    GameSheet.getRange('D4').setValue(TotYds1)
     var html = HtmlService.createHtmlOutputFromFile('Youtube')
        .setWidth(560)
        .setHeight(315);
    SpreadsheetApp.getUi() 
       .showModalDialog(html, PlayDes);

Тогда HTML-код будет:

    <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/7WSQGD874Yc?start=8&end=18" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
<input type="button" value="Close" onclick="google.script.host.close()" />

Я пытаюсь изменить URL-адрес видео в HTML-коде на основе значения, извлеченного из ячейки G2 в электронной таблице.

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Спасибо @JSmith за помощь, вот решение, которое я нашел ... Сторона Google Script

 function retrieveValue(){
  spreadsheet = SpreadsheetApp.openById('sheet ID')
  sheet = spreadsheet.getSheetByName('Data')
  var PlayDes = sheet.getRange('g2').getValue();
 return (sheet.getRange('g2').getValue());

Затем на стороне html

<script>
  //*********************************** retrieve the URL from spreadsheet**********************************
var myValue
  function Vidurl(value)
  {
   myValue=value
   document.write('<iframe width="560" height="315" src= '+myValue+' frameborder="0" allow="autoplay; encrypted-media" allowfullscreen><\/iframe>');
  }
  google.script.run.withSuccessHandler(Vidurl).retrieveValue(); 
</script>

Одна проблема, с которой я столкнулся, былабраузеру не понравился мой сценарий, и он помечал его как опасный сценарий, который мне пришлось переиграть.

0 голосов
/ 24 октября 2018

Скажем, ваша ячейка g2

создайте скрипт в вашей IDE следующим образом:

function retrieveValue()
{
  ...//grab spreadsheet and sheet
  return (sheet.getRange('g2').getValue());
}

и затем вызовите его на стороне клиента HTML следующим образом:

 <iframe id="myVideo" width="560" height="315" src="NEED VARIABLE HERE" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
    <script>
      var myValue = null;
      function onSuccess(value)
      {
        $("#myVideo").attr('src', value);
      }
      google.script.run.withSuccessHandler(onSuccess).retrieveValue();
    </script>

ПРИМЕЧАНИЕ

google.script.run - это асинхронный вызов, поэтому вам придется ждать завершения вызова, чтобы получить желаемое значение на стороне клиента.

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