Google Apps Script для записи в HTML с функцией - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь написать скрипт Google Apps, который при публикации в виде веб-приложения будет иметь кнопку, которая при нажатии вызовет функцию из Code.gs, которая откроет или скроет кусок HTML (по сути, изменитестиль div с определенным идентификатором).

Это небольшой пример, который я настроил:

Мой файл index.html:

<!DOCTYPE html>
<html>
<head>
  <base target="_top">
</head>

<body>

  <button onclick="google.script.run.myFunction()">Click Me</button>

  <div id="myDIV">
    This is my DIV I want to Reveal/Hide.
  </div>

 </body>
</html>

Файл My Code.gs:

function doGet() {
  var template = HtmlService.createTemplateFromFile("index.html");
  var html = template.evaluate();
  return HtmlService.createHtmlOutput(html);
  }

function myFunction() {  
  var x = document.getElementById("myDIV");/*Where the Reference Error Shows Up*/
  if (x.style.display === "none") {
    x.style.display = "block";
    } 
    else {
      x.style.display = "none";
      }
   }

Ошибка, которую я получаю при отладке: ReferenceError: «документ» не определен.При публикации кнопка появляется с видимым myDIV, и нажатие кнопки ничего не делает.

Я предполагаю, что проблема заключается в том, что я должен использовать не document.getElementByID (), а что-то elelse.getElementByID (), ноЯ не знаю, что это за что-то еще.Большинство случаев, которые я ищу в Интернете, не относятся только к Google Web Apps.Любая помощь будет оценена.

1 Ответ

0 голосов
/ 15 января 2019

Вам необходимо позаботиться о том, где выполняется каждый код: код GS выполняется на «стороне сервера» и поэтому не может ссылаться на document, которая является переменной навигатора («сторона клиента»).

Добавьте myFunction() к вашему HTML и назовите его напрямую с помощью onclick="myFunction();", что должно сработать.

С уважением,

...