Class HtmlOutput

HtmlOutput

可透過指令碼提供的 HtmlOutput 物件。基於安全考量 指令碼無法直接將 HTML 傳回給瀏覽器。他們必須加以清理 且無法執行惡意動作您可以按照下列方式傳回經過清理的 HTML:

function doGet() {
  return HtmlService.createHtmlOutput('<b>Hello, world!</b>');
}
HtmlOutput 中的程式碼可包含嵌入式 JavaScript 和 CSS。(這是標準做法) 處理 DOM 而非 Apps Script 的用戶端 JavaScript)。所有內容皆 採用沙箱機制 iframe 沙箱機制。詳情請參閱 HTML 服務限制指南

方法

方法傳回類型簡短說明
addMetaTag(name, content)HtmlOutput在網頁中加入中繼標記。
append(addedContent)HtmlOutput將新內容附加至此 HtmlOutput 的內容。
appendUntrusted(addedContent)HtmlOutput使用情境逸出,將新內容附加至此 HtmlOutput 的內容。
asTemplate()HtmlTemplate傳回此 HtmlOutput 支援的 HtmlTemplate
clear()HtmlOutput清除目前內容。
getAs(contentType)Blob以 blob 的形式傳回這個物件中的資料,做為轉換成指定內容類型的 blob。
getBlob()Blob以 blob 的形式傳回這個物件中的資料。
getContent()String取得這個 HtmlOutput 的內容。
getFaviconUrl()String呼叫 setFaviconUrl(iconUrl) 以取得網站小圖示連結代碼的網址。
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');

參數

名稱類型說明
nameString中繼標記的名稱屬性值。
contentString中繼標記的 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());

參數

名稱類型說明
addedContentString要附加的內容。

回攻員

HtmlOutput:這個輸出項目用於鏈結。

擲回

Error:如果 HTML 格式錯誤

另請參閱


appendUntrusted(addedContent)

使用情境逸出,將新內容附加至此 HtmlOutput 的內容。

這個方法能根據 HtmlOutput 的目前狀態正確逸出內容。 ,這樣結果是沒有標記或邊面的安全字串。使用此 API 取代 請在新增不受信任的來源 (例如使用者) 的內容時附加 ,以避免 您附加了內容或標記,因而不小心允許跨網站指令碼攻擊 (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 的形式傳回這個物件中的資料,做為轉換成指定內容類型的 blob。這個 方法會在檔案名稱中加入適當的副檔名,例如「myfile.pdf」。不過 假設檔案名稱最後一個句點 (如果有) 之後的部分為現有文件 所有應替換的副檔名。因此,「ShoppingList.12.25.2014」變成 「ShoppingList.12.25.pdf」。

如要查看轉換的每日配額,請參閱 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 "<b>Hello, world!</b>"
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
Logger.log(output.getContent());

回攻員

String:提供的內容。


getFaviconUrl()

呼叫 setFaviconUrl(iconUrl) 以取得網站小圖示連結代碼的網址。直接納入 Apps Script HTML 檔案中的網站小圖示連結標記, 已忽略。

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

回攻員

String:網站小圖示圖片的網址。


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)

在頁面中加入網站小圖示的連結標記。直接加入應用程式的網站小圖示連結標記 系統會忽略指令碼 HTML 檔案。

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

參數

名稱類型說明
iconUrlString網站小圖示圖片的網址,其中的圖片額外資訊指出圖片 類型。

回攻員

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:這個輸出項目用於鏈結。