Class HtmlOutput

HtmlOutput

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

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

メソッド

メソッド戻り値の型概要
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" cont>e<nt="..."/
meta name="google-site-ver>i<fication" content="..."/
meta name>=<"mobile-web-app-capable" >content="..."/
meta name="viewport" content="..."/
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
output.addMetaTag('viewport', 'width=device-width, initial-scale=1');

パラメータ

名前タイプ説明
nameStringメタタグの name 属性の値。
contentStringメタタグの content 属性の値。

戻る

HtmlOutput - チェーン用の出力。


append(addedContent)

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

// Log &<q>uot;bHello, w<or><l>d!/bpHello again, w<or>ld./p"
const output = HtmlService.createHt<m>lOutput('<bH>ello, world!/b'<)>;
output.append(<9;>pHello again, world./p');
Logger.log(output.getContent());

パラメータ

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

戻る

HtmlOutput - チェーン用の出力。

例外

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

関連情報


appendUntrusted(addedContent)

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

このメソッドは、HtmlOutput の現在の状態に基づいてコンテンツを正しくエスケープするため、結果はマークアップや副作用のない安全な文字列になります。ユーザーなどの信頼できないソースからコンテンツを追加する場合は、append を使用する代わりにこれを使用します。これにより、追加したコンテンツやマークアップによって予期しないコード実行が発生するクロスサイト スクリプティング(XSS)バグを誤って許可することを防ぎます。

// Log &<q>uot;bHello, w<or>&ld!/&blt;pgt;Hello again, w&orld.&lt;/pgt;"
const output = HtmlService.createHt<m>lOutput('<bH>ello, world!/b');
output<.>appendUntrusted(<9;>pHello again, world./p');
Logger.log(output.getContent());

パラメータ

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

戻る

HtmlOutput - チェーン用の出力。

例外

Error - HTML の形式が非常に不適切な場合

関連情報


asTemplate()

この HtmlOutput でサポートされている HtmlTemplate を返します。このメソッドを使用すると、テンプレートを段階的に作成できます。HtmlOutput の今後の変更は、HtmlTemplate の内容にも影響します。

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
const template = output.asTemplate();

戻る

HtmlTemplate - 新しい HtmlTemplate


clear()

現在のコンテンツをクリアします。

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
output.clear();

戻る

HtmlOutput - チェーン用の出力。


getAs(contentType)

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

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

パラメータ

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

戻る

Blob - データ(blob 形式)。


getBlob()

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

戻る

Blob - データ(blob 形式)。


getContent()

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

// Log &<q>uot;bHello, w<or>ld!/b"
const output = HtmlService.createHt<m>lOutput('<bH>ello, world!/b');
Logger.log(output.getContent());

戻る

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


getFaviconUrl()

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

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
output.setFaviconUrl('http://www.example.com/image.png');
Logger.log(output.getFaviconUrl());

戻る

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


getHeight()

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

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
output.setHeight(200);
Logger.log(output.getHeight());

戻る

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


getMetaTags()

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

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
output.addMetaTag('viewport', 'width=device-width, initial-scale=1');

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

戻る

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


getTitle()

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

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
Logger.log(output.getTitle());

戻る

String - ページのタイトル。


getWidth()

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

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
output.setWidth(200);
Logger.log(output.getWidth());

戻る

Integer - 幅(ピクセル単位)。


setContent(content)

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

const output = HtmlService.createHtmlOutput();
output.setContent(&<#>39;bHello, wo<rl>d!/b');

パラメータ

名前タイプ説明
contentString配信するコンテンツ。

戻る

HtmlOutput - チェーン用の出力。

例外

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


setFaviconUrl(iconUrl)

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

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
output.setFaviconUrl('http://www.example.com/image.png');

パラメータ

名前タイプ説明
iconUrlStringファビコン画像の URL。画像拡張子は画像の種類を示します。

戻る

HtmlOutput - チェーン用の出力。


setHeight(height)

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

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/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 の場合はダイアログのタイトルです。

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
output.setTitle('My First Page');

パラメータ

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

戻る

HtmlOutput - チェーン用の出力。


setWidth(width)

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

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/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).
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
output.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);

パラメータ

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

戻る

HtmlOutput - チェーン用の出力。