スクリプトから提供可能な HtmlOutput
オブジェクト。セキュリティ上の考慮事項により、スクリプトが HTML をブラウザに直接返すことはできません。その代わりに、悪意のあるアクションを実行できないようにサニタイズする必要があります。次のようにサニタイズされた HTML を返すことができます。
function doGet() { return HtmlService.createHtmlOutput('<b>Hello, world!</b>'); }
HtmlOutput
のコードには、埋め込み JavaScript と CSS を含めることができます。(これは DOM を操作する標準のクライアント側 JavaScript であり、Apps Script ではありません)。こうしたコンテンツはすべて、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() | String | setFaviconUrl(iconUrl) を呼び出して、ページに追加されたファビコン リンクタグの URL を取得します。 |
getHeight() | Integer | Google ドキュメント、スプレッドシート、フォームのカスタム ダイアログの初期の高さを取得します。 |
getMetaTags() | HtmlOutputMetaTag[] | addMetaTag(name, content) を呼び出してページに追加されたメタタグを表すオブジェクトの配列を取得します。 |
getTitle() | String | 出力ページのタイトルを取得します。 |
getWidth() | Integer | Google ドキュメント、スプレッドシート、フォームのカスタム ダイアログの初期の幅を取得します。 |
setContent(content) | HtmlOutput | この HtmlOutput のコンテンツを設定します。 |
setFaviconUrl(iconUrl) | HtmlOutput | ファビコンのリンクタグをページに追加します。 |
setHeight(height) | HtmlOutput | Google ドキュメント、スプレッドシート、フォームのカスタム ダイアログの初期の高さを設定します。 |
setSandboxMode(mode) | HtmlOutput | このメソッドは機能しなくなりました。以前は、クライアント側のスクリプトに使用される sandbox
mode が設定されていました。 |
setTitle(title) | HtmlOutput | 出力ページのタイトルを設定します。 |
setWidth(width) | HtmlOutput | Google ドキュメント、スプレッドシート、フォームのカスタム ダイアログの初期の幅を設定します。 |
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');
パラメータ
名前 | 型 | 説明 |
---|---|---|
name | String | メタタグの name 属性の値。 |
content | String | メタタグの content 属性の値。 |
リターン
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());
パラメータ
名前 | 型 | 説明 |
---|---|---|
addedContent | String | 追加するコンテンツ。 |
リターン
HtmlOutput
- この出力(チェーンの場合)。
例外
Error
- HTML の形式が正しくない場合
関連ドキュメント
appendUntrusted(addedContent)
コンテキストに応じたエスケープを使用して、この HtmlOutput
のコンテンツに新しいコンテンツを追加します。
このメソッドは、HtmlOutput
の現在の状態に基づいてコンテンツを正しくエスケープするため、マークアップや副作用のない安全な文字列になります。これは、信頼できないソース(ユーザーなど)からコンテンツを追加するときに使用する代わりに、追加したコンテンツまたはマークアップが原因で予期しないコード実行を引き起こすクロスサイト スクリプティング(XSS)バグを誤って許可しないようにするために使用します。
// Log "<b>Hello, world!</b><p>Hello again, world.</p>" var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.appendUntrusted('<p>Hello again, world.</p>'); Logger.log(output.getContent());
パラメータ
名前 | 型 | 説明 |
---|---|---|
addedContent | String | 追加するコンテンツ。 |
リターン
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 として返します。この方法では、ファイル名に適切な拡張子(「myfile.pdf」など)が追加されます。ただし、ファイル名の最後のピリオド(存在する場合)に続く部分は、置き換えられる既存の拡張子であることを前提としています。この結果、「ShoppingList.12.25.2014」は「ShoppingList.12.25.pdf」になります。
コンバージョンの 1 日あたりの割り当てを確認するには、Google サービスの割り当てをご覧ください。新しく作成された Google Workspace ドメインには、一時的に割り当てが厳しくなることがあります。
パラメータ
名前 | 型 | 説明 |
---|---|---|
contentType | String | 変換先の MIME タイプ。ほとんどの blob では、有効なオプションは 'application/pdf' のみです。BMP、GIF、JPEG、PNG 形式の画像の場合は、'image/bmp' 、'image/gif' 、'image/jpeg' 、'image/png' のいずれかも有効です。 |
リターン
Blob
- blob としてのデータ。
getBlob()
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()
出力ページのタイトルを取得します。HTML 要素 <title> は無視されます。
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>');
パラメータ
名前 | 型 | 説明 |
---|---|---|
content | String | 配信するコンテンツ。 |
リターン
HtmlOutput
- この出力(チェーンの場合)。
例外
Error
- HTML の形式が正しくない場合
setFaviconUrl(iconUrl)
ファビコンのリンクタグをページに追加します。Apps Script の HTML ファイルに直接含まれているファビコン リンクタグは無視されます。
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setFaviconUrl('http://www.example.com/image.png');
パラメータ
名前 | 型 | 説明 |
---|---|---|
iconUrl | String | ファビコン画像の URL。画像の拡張子は画像の種類を示します。 |
リターン
HtmlOutput
- この出力(チェーンの場合)。
setHeight(height)
Google ドキュメント、スプレッドシート、フォームのカスタム ダイアログの初期の高さを設定します。代わりに HtmlOutput
がウェブアプリとして公開されている場合、このメソッドは効力がありません。すでに開いているダイアログのサイズを変更するには、クライアント側のコードで
google.script.host.setHeight(height)
を呼び出します。
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setHeight(200);
パラメータ
名前 | 型 | 説明 |
---|---|---|
height | Integer | 新しい高さ(ピクセル単位)。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>
パラメータ
名前 | 型 | 説明 |
---|---|---|
mode | SandboxMode | 使用するサンドボックス モード。 |
リターン
HtmlOutput
- この出力(チェーンの場合)。
setTitle(title)
出力ページのタイトルを設定します。ウェブアプリの場合はページ全体のタイトル、Google スプレッドシートに表示される HtmlOutput
の場合はダイアログのタイトルです。
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setTitle('My First Page');
パラメータ
名前 | 型 | 説明 |
---|---|---|
title | String | 新しいタイトル。 |
リターン
HtmlOutput
- この出力(チェーンの場合)。
setWidth(width)
Google ドキュメント、スプレッドシート、フォームのカスタム ダイアログの初期の幅を設定します。代わりに HtmlOutput
がウェブアプリとして公開されている場合、このメソッドは効力がありません。すでに開いているダイアログのサイズを変更するには、クライアント側のコードで
google.script.host.setWidth(width)
を呼び出します。
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setWidth(200);
パラメータ
名前 | 型 | 説明 |
---|---|---|
width | Integer | ピクセル単位の新しい幅です。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);
パラメータ
名前 | 型 | 説明 |
---|---|---|
mode | XFrameOptionsMode | 設定する XFrame オプション モード。 |
リターン
HtmlOutput
- この出力(チェーンの場合)。