Google Apps Scriptによる動的Webページの作成
GASでPHPのように動的Webページを作成することができる(参考サイト)。まず、以下のようなテンプレートHTMLファイルをGASエディタで作成する(ファイル名は「テンプレート.html」とする)。
<!DOCTYPE html> <html> <head> <base target="_top"> <script>alert("ようこそ患者一覧へ!");</script> </head> <body> <h1>患者一覧表</h1> <p>日付:<?= Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy/MM/dd HH:mm:ss'); ?></p> <p> <table border="1"> <tr> <th>患者番号</th> <th>患者氏名</th> <th>性別</th> <th>生年月日</th> </tr> <? const patients = [ { "id": "A10101", "name": "山田 太郎", "gender": "男", "birthDate": "2000/12/10", }, { "id": "B10203", "name": "鈴木 順子", "gender": "女", "birthDate": "1963/8/15", }, { "id": "B30214", "name": "佐藤 肇", "gender": "男", "birthDate": "1945/3/19", }, { "id": "D00129", "name": "木島 洋子", "gender": "女", "birthDate": "2005/10/29", }, ]; for(var patient of patients) { output._ = '<tr>'; output._ = '<td>' + patient.id + '</td>'; output._ = '<td>' + patient.name + '</td>'; output._ = '<td>' + patient.gender + '</td>'; output._ = '<td>' + patient.birthDate + '</td>'; output._ = '</tr>'; } ?> </table> </p> </body> </html>
HTMLにJavascriptコードを埋め込む場合、<?と?>で囲む。 ここで、outputオブジェクトは特殊なオブジェクトで、動的にHTMLに要素や文字列を出力するために用いる。もともと、その目的のためにoutput.append()というメソッドがあったようだが、現在はエラーになる(output.append is not a function. というエラーが表示される)ため、「output._ = 出力したい文字列」のように使う(参考サイト)。
次に、以下のようなGASを作成して、上述したHTMLテンプレートファイルを読み込んで、埋め込まれたコードを実行(評価=evaluate)して返す。
function doGet() { return HtmlService.createTemplateFromFile("テンプレート").evaluate(); }
ここで、HtmlService.createTemplateFromFileの引数にはテンプレートHTMLファイル名を指定するのだが、拡張子(.html)は付けない。
完成した動的Webページを下図に示す。
ここをクリックすると実際のページを表示します。
問題点として、「このアプリケーションは、Google ではなく、別のユーザーによって作成されたものです。」が表示される。これに対する解決策はこのサイトに書いてある。
0 件のコメント:
コメントを投稿