将对象作为gs中js中的全局变量传递

问题描述 投票:-2回答:2

我正在使用Google App脚本来构建Web应用程序。我在Google App脚本中有一个功能:

function getPalette(){
  var ss = SpreadsheetApp.openByUrl(url);
  var ws_palette = ss.getSheetByName("palette");
  var palette_data = ws_palette.getRange(2,1,1,1).getValue();
  var palette = JSON.parse(palette_data.replace(/'/g, '"'));
  return palette;
}

我想将此palette对象作为全局变量传递给javascript.html。

我该怎么做?非常感谢!

javascript google-apps-script global-variables google-apps-script-web-application
2个回答
0
投票

意味着我可以在javascript文件中的所有函数中使用它

如果需要全局变量以在所有文件中的任何地方使用–只需将其存储在window对象中即可。但是一般来说,这不是一个好选择,请添加更多详细信息以获得更好的解决方案


0
投票

Apps Script端变量可通过scriptlets从html / javascript端访问

小脚本允许您在<? ... ?>code.gs部分或您的WebApp中使用<?= ... ?>运行任何Apps脚本代码,或使用html访问javascript中的任何变量。

用于访问全局变量的示例:

Code.gs

const globalVar = "I am global";

function doGet() {
  return HtmlService.createTemplateFromFile("javascript").evaluate();
}

javascript.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <script>
    console.log(<?= globalVar ?>);
    </script>
  </body>
</html>

重要:

[Apps Script scriptlet仅在通过创建和评估模板而不是直接创建输出来返回html内容时才有效。

© www.soinside.com 2019 - 2024. All rights reserved.