スクリプトから提供できる 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() | 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 | メタタグの名前属性の値。 |
content | String | メタタグのコンテンツ属性の値。 |
戻る
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 として返します。このメソッドは、ファイル名に適切な拡張子を追加します(例: &filet;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()
出力ページのタイトルを取得します。<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>');
パラメータ
名前 | 型 | 説明 |
---|---|---|
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
- チェーン用の出力。