とまと あんらいぷ…

エンジニアの活動記録とかつぶやきとか

GitHub
スポンサードリンク

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサードリンク

【GAS】Google Apps Srript タイトル(title)タグの設定方法

ウェブアプリケーションとして導入した時のタイトルタグ設定方法


Google Apps Srriptをウェブアプリケーションとして導入する時、
必然的にhtmlテンプレートを作成し、HtmlService.createTemplateFromFile()メソッド呼び出しによって
ページを作成することになります。

サイト全体の作りとしてはこんな感じ。
html

コード.gs


タイトル(title)タグにURLが・・・


ところが、html側にtitleタグを埋め込んでも反映されません。
理由はサーバー側のパーサ処理で、htmlタグの生成が行われ、別のtitleタグが
追加されるからです。

結果としてブラウザのタイトル部分や、タブブラウザだとタブ部分に
URLが表示されたままとなります。
20140129_nontitle.png

タイトルタグを設定する場合は、htmlファイルにtitleタグをマークアップするのではなく
HtmlOutputクラスのsetTitle()メソッドを使うことで解決します。

タイトルが設定されたページ
20140129_titleset.png


HtmlOutputってなんだ。


Google Apps Scriptでhtmlを生成する時、
ページリクエストの最初に呼ばれるdoGet()メソッド内部で
htmlファイルを元にページオブジェクトを生成する処理を行います。
それが上述にある

var tpl = HtmlService.createTemplateFromFile('index.html');
return tpl.evaluate();

です。

まず、createTemplateFromFile()メソッドはHtmlTemplateオブジェクトをhtmlファイルを元に作成するメソッドであり、
そのメンバである evaluate()が、HtmlOutputオブジェクトを返します。
返ってきたHtmlOutputクラスのsetTitle()メソッドを呼び出すことで、<title>タグがセットされたHtmlOutputが返却されます。
setTitle()の戻り値もまたHtmlOutputオブジェクトであるため、
doGet()メソッドからそのままreturnすることで、タイトルが意図したとおりのページが生成されることになります。
▼この記事を読んだ方は、こんな記事も読んでいます。▼

スポンサードリンク

テーマ:プログラミング - ジャンル:コンピュータ

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://dalmore.blog7.fc2.com/tb.php/95-cb20cb8f
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。