せっかくAmazon Kindle Unlimitedの無料体験中なので、そろそろ本腰入れてGAS入門するぞ、とGoogle Apps Scriptステップアップガイドを始めてみた。
以下、躓いた部分のメモ。
- 発生した問題
doGetメソッドの実行でエラー
TypeError: output.append is not a function(行 12)
- 該当箇所
// コード.gs
function doGet() {
var output =
HtmlService.createTemplateFromFile('index');
return output.evaluate().setTitle('Sample page');
}function getData() {
return ["Windows","Mac OS X","Linux"];
}
// index.html
<style>
h1 {font-size:16pt;
background:#AAFFAA;padding:5px;}
p {margin:10px;}
</style>
<h1>Sample page</h1>
<ol>
<?
var datas = getData();
for(var i=0;i<=datas.length;i++){
if(datas[i]==undefined){ break; }
output*1.append('<li>'+datas[i]+'</li>');
}
?>
</ol>
- 解決
V8ランタイムを無効にする
GASが旧RhinoランタイムからV8ランタイムに対応した関係*2で、一部の構文が使えなくなってしまった模様。V8ランタイムは現在のJavascriptの標準規格であるECMAScriptに準拠していて、こちらの方がよりモダンなJSを書けますよ、ということらしい。
今回はRhinoエンジンにダウングレードしたことで問題解消。
公式V8ドキュメント
英弱なのでこちらも参照。