Class HtmlOutput

HTMLOutput

スクリプトから提供できる HtmlOutput オブジェクト。セキュリティ上の考慮事項により、スクリプトでは、HTML をブラウザにそのまま返すことはできません。その代わりに、悪意のあるアクションを実行できないようにサニタイズする必要があります。サニタイズされた HTML は、次のように返すことができます。

function doGet() {
  return HtmlService.createHtmlOutput('<b>Hello, world!</b>');
}
HtmlOutput のコードには、JavaScript と CSS を埋め込むことができます。(これは Apps Script ではなく DOM を操作する標準のクライアント側 JavaScript です)。このコンテンツはすべて、iframe サンドボックスを使用してサンドボックス化されます。詳しくは、HTML サービスの制限に関するガイドをご覧ください。

Methods

方法戻り値の型概要
addMetaTag(name, content)HtmlOutputメタタグをページに追加します。
append(addedContent)HtmlOutputこの HtmlOutput のコンテンツに新しいコンテンツを追加します。
appendUntrusted(addedContent)HtmlOutputコンテキストのエスケープを使用して、この HtmlOutput のコンテンツに新しいコンテンツを追加します。
asTemplate()HtmlTemplateこの HtmlOutput を基盤とする HtmlTemplate を返します。
clear()HtmlOutput現在のコンテンツを削除します。
getAs(contentType)Blobこのオブジェクト内のデータを、指定されたコンテンツ タイプに変換した blob として返します。
getBlob()Blobこのオブジェクト内のデータを blob として返します。
getContent()Stringこの HtmlOutput のコンテンツを取得します。
getFaviconUrl()StringsetFaviconUrl(iconUrl) を呼び出して、ページに追加されたファビコン リンクタグの URL を取得します。
getHeight()IntegerGoogle ドキュメント、スプレッドシート、フォームでのカスタム ダイアログの初期の高さを取得します。
getMetaTags()HtmlOutputMetaTag[]addMetaTag(name, content) を呼び出して、ページに追加されたメタタグを表すオブジェクトの配列を取得します。
getTitle()String出力ページのタイトルを取得します。
getWidth()IntegerGoogle ドキュメント、スプレッドシート、フォームでカスタム ダイアログの初期幅を取得します。
setContent(content)HtmlOutputこの HtmlOutput のコンテンツを設定します。
setFaviconUrl(iconUrl)HtmlOutputファビコンのリンクタグをページに追加します。
setHeight(height)HtmlOutputGoogle ドキュメント、スプレッドシート、フォームでのカスタム ダイアログの初期の高さを設定します。
setSandboxMode(mode)HtmlOutputこのメソッドは現在効果がありません。これまでは、クライアント側のスクリプトに使用される sandbox mode を設定していました。
setTitle(title)HtmlOutput出力ページのタイトルを設定します。
setWidth(width)HtmlOutputGoogle ドキュメント、スプレッドシート、フォームでのカスタム ダイアログの初期幅を設定します。
setXFrameOptionsMode(mode)HtmlOutputクリックジャッキング防止を制御する、ページの X-Frame-Options ヘッダーの状態を設定します。

詳細なドキュメント

addMetaTag(name, content)

メタタグをページに追加します。Apps Script HTML ファイルに直接含まれているメタタグは無視されます。次のメタタグのみを使用できます。

<meta name="apple-mobile-web-app-capable" content="..."/>
<meta name="google-site-verification" content="..."/>
<meta name="mobile-web-app-capable" content="..."/>
<meta name="viewport" content="..."/>
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.addMetaTag('viewport', 'width=device-width, initial-scale=1');

パラメータ

名前説明
nameStringメタタグの名前属性の値。
contentStringメタタグのコンテンツ属性の値。

戻る

HtmlOutput - チェーン用の出力。


append(addedContent)

この HtmlOutput のコンテンツに新しいコンテンツを追加します。これはエスケープされていないため、信頼できるソースのコンテンツにのみ使用してください。

// Log "<b>Hello, world!</b><p>Hello again, world.</p>"
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.append('<p>Hello again, world.</p>');
Logger.log(output.getContent());

パラメータ

名前説明
addedContentString追加するコンテンツ。

戻る

HtmlOutput - チェーン用の出力。

スロー値

Error - HTML の形式が正しくない場合

関連ドキュメント


appendUntrusted(addedContent)

コンテキストのエスケープを使用して、この HtmlOutput のコンテンツに新しいコンテンツを追加します。

このメソッドは、HtmlOutput の現在の状態に基づいてコンテンツを適切にエスケープし、その結果がマークアップや副作用のない安全な文字列になるようにします。信頼できないソース(ユーザーからのものなど)からコンテンツを追加するときは、代わりに追加を使用してください。これにより、クロス コンテンツ スクリプティング(XSS)バグが誤って追加されたときに予期しないコードの実行が起こるのを誤って回避できるようになります。

// Log "<b>Hello, world!</b>&lt;p&gt;Hello again, world.&lt;/p&gt;"
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.appendUntrusted('<p>Hello again, world.</p>');
Logger.log(output.getContent());

パラメータ

名前説明
addedContentString追加するコンテンツ。

戻る

HtmlOutput - チェーン用の出力。

スロー値

Error - HTML の形式が正しくない場合

関連ドキュメント


asTemplate()

この HtmlOutput を基盤とする HtmlTemplate を返します。この方法は、テンプレートを段階的に作成する場合に使用できます。将来の HtmlOutput の変更は、HtmlTemplate の内容にも影響します。

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
var template = output.asTemplate();

戻る

HtmlTemplate - 新しい HtmlTemplate


clear()

現在のコンテンツを削除します。

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.clear();

戻る

HtmlOutput - チェーン用の出力。


getAs(contentType)

このオブジェクト内のデータを、指定されたコンテンツ タイプに変換した blob として返します。このメソッドは、ファイル名に適切な拡張子を追加します(例: &filet;myfile.pdf")。ただし、最後のピリオド(ある場合)に続くファイル名の部分は既存の拡張機能であり、置き換える必要があります。したがって、「ShoppingList.12.25.2014」は「ShoppingList.12.25.pdf&quot」になります。

1 日あたりのコンバージョンの割り当てを確認するには、Google サービスの割り当てをご覧ください。新しく作成された Google Workspace ドメインは、より厳密な割り当ての適用を一時的に受けることがあります。

パラメータ

名前説明
contentTypeString変換先の MIME タイプ。ほとんどの blob では、'application/pdf' が唯一の有効なオプションです。BMP、GIF、JPEG、PNG 形式の画像の場合、'image/bmp''image/gif''image/jpeg''image/png' のいずれかも有効です。

戻る

Blob - blob としてのデータ。


getBlob()

このオブジェクト内のデータを blob として返します。

戻る

Blob - blob としてのデータ。


getContent()

この HtmlOutput のコンテンツを取得します。

// Log "<b>Hello, world!</b>"
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
Logger.log(output.getContent());

戻る

String - 配信されるコンテンツ。


getFaviconUrl()

setFaviconUrl(iconUrl) を呼び出して、ページに追加されたファビコン リンクタグの URL を取得します。Apps Script HTML ファイルに直接含まれているファビコンのリンクタグは無視されます。

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setFaviconUrl('http://www.example.com/image.png');
Logger.log(output.getFaviconUrl());

戻る

String - ファビコン画像の URL。


getHeight()

Google ドキュメント、スプレッドシート、フォームでのカスタム ダイアログの初期の高さを取得します。代わりに HtmlOutput がウェブアプリとして公開されている場合、このメソッドは null を返します。すでに開いているダイアログのサイズを変更するには、クライアント側のコードで google.script.host.setHeight(height) を呼び出します。

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setHeight(200);
Logger.log(output.getHeight());

戻る

Integer - 高さ(ピクセル単位)。


getMetaTags()

addMetaTag(name, content) を呼び出して、ページに追加されたメタタグを表すオブジェクトの配列を取得します。Apps Script HTML ファイルに直接含まれているメタタグは無視されます。

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.addMetaTag('viewport', 'width=device-width, initial-scale=1');

var tags = output.getMetaTags();
Logger.log('<meta name="%s" content="%s"/>', tags[0].getName(), tags[0].getContent());

戻る

HtmlOutputMetaTag[] - addMetaTag(name, content) を呼び出してページに追加されたメタタグを表すオブジェクトの配列。


getTitle()

出力ページのタイトルを取得します。<title> HTML 要素は無視されます。

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
Logger.log(output.getTitle());

戻る

String - ページのタイトル。


getWidth()

Google ドキュメント、スプレッドシート、フォームでカスタム ダイアログの初期幅を取得します。代わりに HtmlOutput がウェブアプリとして公開されている場合、このメソッドは null を返します。すでに開いているダイアログのサイズを変更するには、クライアント側のコードで google.script.host.setWidth(width) を呼び出します。

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setWidth(200);
Logger.log(output.getWidth());

戻る

Integer - ピクセル単位の幅です。


setContent(content)

この HtmlOutput のコンテンツを設定します。

var output = HtmlService.createHtmlOutput();
output.setContent('<b>Hello, world!</b>');

パラメータ

名前説明
contentString提供するコンテンツ。

戻る

HtmlOutput - チェーン用の出力。

スロー値

Error - HTML の形式が正しくない場合


setFaviconUrl(iconUrl)

ファビコンのリンクタグをページに追加します。Apps Script HTML ファイルに直接含まれているファビコンのリンクタグは無視されます。

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setFaviconUrl('http://www.example.com/image.png');

パラメータ

名前説明
iconUrlStringファビコン画像の URL。画像表示オプションによって画像の種類が示されます。

戻る

HtmlOutput - チェーン用の出力。


setHeight(height)

Google ドキュメント、スプレッドシート、フォームでのカスタム ダイアログの初期の高さを設定します。代わりに HtmlOutput がウェブアプリとして公開されている場合、このメソッドは何の効果もありません。すでに開いているダイアログのサイズを変更するには、クライアント側のコードで google.script.host.setHeight(height) を呼び出します。

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setHeight(200);

パラメータ

名前説明
heightInteger新しい高さ(ピクセル単位)(null はデフォルト値)。

戻る

HtmlOutput - チェーン用の出力。


setSandboxMode(mode)

このメソッドは現在効果がありません。これまでは、クライアント側のスクリプトに使用される sandbox mode を設定していました。悪意のある HTML や JavaScript がユーザーに提供されるのを防ぐために、HTML サービスから配信されるクライアント側コードは、セキュリティ サンドボックス内で実行され、そのコードには制限があります。この方法では、スクリプトの作成者はサンドボックスの異なるバージョンを選択できましたが、現在はサンドボックス モードに関係なく、すべてのスクリプトで IFRAME モードが使用されるようになりました。詳しくは、HTML サービスの制限に関するガイドをご覧ください。

IFRAME モードでは、他のサンドボックス モードよりもはるかに制限が少なく、動作が速くなりますが、Internet Explorer 9 を含む一部の古いブラウザではまったく動作しません。サンドボックス モードは、google.script.sandbox.mode を調べることで、クライアント側のスクリプトで読み取ることができます。このプロパティはクライアントの実際のモードを返します。リクエストされたモードがユーザーのブラウザでサポートされていない場合は、サーバーでリクエストされたモードと異なる可能性があります。

<!-- Read the sandbox mode (in a client-side script). -->
<script>
  alert(google.script.sandbox.mode);
</script>

パラメータ

名前説明
modeSandboxMode使用するサンドボックス モード。

戻る

HtmlOutput - チェーン用の出力。


setTitle(title)

出力ページのタイトルを設定します。ウェブアプリの場合はタイトルであり、Google スプレッドシートに表示される HtmlOutput の場合はダイアログのタイトルです。

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setTitle('My First Page');

パラメータ

名前説明
titleString新しいタイトル。

戻る

HtmlOutput - チェーン用の出力。


setWidth(width)

Google ドキュメント、スプレッドシート、フォームでのカスタム ダイアログの初期幅を設定します。代わりに HtmlOutput がウェブアプリとして公開されている場合、このメソッドは何の効果もありません。すでに開いているダイアログのサイズを変更するには、クライアント側のコードで google.script.host.setWidth(width) を呼び出します。

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setWidth(200);

パラメータ

名前説明
widthIntegerピクセル単位の新しい幅。null の場合、デフォルト値になります。

戻る

HtmlOutput - チェーン用の出力。


setXFrameOptionsMode(mode)

クリックジャッキング防止を制御する、ページの X-Frame-Options ヘッダーの状態を設定します。

XFrameOptionsMode.ALLOWALL を設定すると、どのサイトでもページに iframe を設定できるので、デベロッパーはクリックジャッキングに対する独自の保護を実装する必要があります。

スクリプトで X-Frame-Options モードが設定されていない場合、Apps Script はデフォルトで XFrameOptionsMode.DEFAULT モードを使用します。

// Serve HTML with no X-Frame-Options header (in Apps Script server-side code).
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);

パラメータ

名前説明
modeXFrameOptionsMode設定する XFrame オプション モード。

戻る

HtmlOutput - チェーン用の出力。