Javascript 从gs以js中的全局变量形式传递对象
我正在使用GoogleApps脚本构建一个web应用程序。 我在谷歌应用程序脚本中有一个函数:Javascript 从gs以js中的全局变量形式传递对象,javascript,google-apps-script,web-applications,global-variables,Javascript,Google Apps Script,Web Applications,Global Variables,我正在使用GoogleApps脚本构建一个web应用程序。 我在谷歌应用程序脚本中有一个函数: 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 =
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;
}
我想将这个调色板
对象作为全局变量传递给javascript.html
我该怎么做?非常感谢 可以从html/javascript并排访问应用程序脚本端变量
Scriptlet允许您使用
运行任何应用程序脚本代码,或使用html
或javascript
部分或您的Web应用程序中的code.gs
访问任何变量
访问全局变量的示例:
代码.gs
javascript.html
console.log();
重要提示:
Apps Script Scriptlet仅在通过创建和评估模板而不是直接创建输出返回html内容时才起作用。请添加更多详细信息,gs是什么?您所说的“通用”变量是什么意思?@TheMaster意味着我可以在javascript中任何地方的每个函数中使用它file@GwenYang还不清楚。Js文件或gs文件中的任何地方?到处都是什么意思?你试过模板和google.script.run吗?这些不令人满意吗?如果是这样的话,为什么?你说的是像
code.gs
文件一样位于同一项目中的html
文件吗?谢谢!我认为这非常接近。我使用了函数include_JS(){return HtmlService.createHtmlOutputFromFile(“Javascript”).getContent();}
,并将问题中的函数放在.gs文件中。然后constpalete=getpalete()代码>。然后在Javascript.html中,我使用了let-palete=
它不起作用。请阅读我回答中的最后一句话:创建并评估模板,而不是直接创建输出,因此:createTemplateFromFile(“Javascript”).evaluate()代码>而不是createHtmlOutFromFile(“Javascript”)
const globalVar = "I am global";
function doGet() {
return HtmlService.createTemplateFromFile("javascript").evaluate();
}
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<script>
console.log(<?= globalVar ?>);
</script>
</body>
</html>