HtmlService経由でGoogleアプリスクリプトからGoogleクロージャライブラリ関数にアクセスすることは可能ですか? Google スクリプトの html ファイルは、クロージャ ライブラリに関連するものを除外しているようです。
プロジェクト: HtmlService を使用して、Google アプリ スクリプト内から Google Closure ライブラリの DOM 操作ユーティリティを調べています。これをスタンドアロンの Web アプリとして実行するつもりです。
クロージャー関数は、ローカル クライアント環境からブラウザーに直接読み込まれると機能しますが、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>
Google スクリプト ファイル
function s_getCurrentDate() {
return new Date().toString();
}
function doGet(e) {
return HtmlService.createTemplateFromFile('hello').evaluate();
}
クライアント側の関数には c_ を、サーバー側の関数には s_ をプレフィックスとして付けました。これをウェブアプリとして実行すると、
関数 c_sayHi は効果がありません。呼び出されているかどうかもわかりません。
関数 s_getCurrentDate と c_updateButton は、Google のドキュメントhttps://developers.google.com/apps-script/html_serviceで説明されているように正常に動作します。
上記で試みたように、Web アプリからクロージャ ライブラリを動作させる方法はありますか?