是否可以通过 HtmlService 从谷歌应用脚本访问谷歌闭包库函数?谷歌脚本中的 html 文件似乎过滤掉了与闭包库相关的任何内容。
项目:我正在使用 HtmlService 从 Google 应用脚本中探索 Google Closure 库中的 DOM 操作实用程序。我打算将其作为独立的网络应用程序运行。
闭包函数在从其本地客户端环境直接加载到浏览器时起作用 - 但在通过 HtmlService 实用程序从 GAS 应用程序注入时它们不起作用。
这是我在 GAS 中使用的代码。
.html 文件
<html>
<head>
<script src="http://closure-library.googlecode.com/svn/trunk/closure/goog/base.js"></script>
<script>
goog.require('goog.dom');
function c_sayHi() {
var newHeader = goog.dom.createDom('h1', {'style': 'background-color:#EEE'},'Hello world!');
goog.dom.appendChild(document.body, newHeader);
}
</script>
</head>
<script>
function c_updateButton(date, button) {
button.value = "clicked at " + date;
}
</script>
<body onload="c_sayHi()">
<input type='button' value='Never Clicked'
onclick='google.script.run.withSuccessHandler(c_updateButton).withUserObject(this).s_getCurrentDate()'>
<input type='button' value='Never Clicked'
onclick='google.script.run.withSuccessHandler(c_updateButton).withUserObject(this).s_getCurrentDate()'>
</body>
</html>
谷歌脚本文件
function s_getCurrentDate() {
return new Date().toString();
}
function doGet(e) {
return HtmlService.createTemplateFromFile('hello').evaluate();
}
我为客户端函数添加了前缀 c_,为服务器端 fns 添加了前缀。将其作为 Web 应用程序运行时,
函数 c_sayHi 没有效果 - 我不确定它是否被调用。
函数 s_getCurrentDate 和 c_updateButton 工作正常,如谷歌文档https://developers.google.com/apps-script/html_service中所述。
有没有办法让闭包库像上面尝试的那样从网络应用程序中工作?