可透過指令碼放送的 Html
物件。基於安全考量,指令碼無法直接將 HTML 傳回至瀏覽器。而是必須進行消毒,以免執行惡意動作。您可以傳回經過淨化的 HTML,如下所示:
function doGet() { return HtmlService.createHtmlOutput('<b>Hello, world!</b>'); }
Html Output
中的程式碼可包含嵌入的 JavaScript 和 CSS。(這是操控 DOM 的標準用戶端 JavaScript,而非 Apps Script)。所有這類內容都會使用 iframe 沙箱進行沙箱處理。詳情請參閱HTML 服務限制指南。方法
內容詳盡的說明文件
add Meta Tag(name, content)
在網頁中加入中繼標記。系統會忽略直接在 Apps Script HTML 檔案中加入的中繼標記。僅允許使用下列 Meta 標記:
<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="..."/>
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.addMetaTag('viewport', 'width=device-width, initial-scale=1');
參數
名稱 | 類型 | 說明 |
---|---|---|
name | String | 元資料標記的名稱屬性值。 |
content | String | 元資料標記的內容屬性值。 |
回攻員
Html
:這個輸出內容,用於鏈結。
append(addedContent)
將新內容附加至此 Html
的內容。由於未對此字元進行轉義,因此請僅將其用於來自可信來源的內容。
// Log "<b>Hello, world!</b><p>Hello again, world.</p>" const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.append('<p>Hello again, world.</p>'); Logger.log(output.getContent());
參數
名稱 | 類型 | 說明 |
---|---|---|
added | String | 要附加的內容。 |
回攻員
Html
:這個輸出內容,用於鏈結。
擲回
Error
:HTML 格式錯誤
另請參閱
append Untrusted(addedContent)
使用內容逃逸功能,將新內容附加至此 Html
的內容。
這個方法會根據 Html
的目前狀態正確轉義內容,因此結果是沒有標記或副作用的安全字串。每當您從不受信任的來源 (例如使用者) 新增內容時,請使用此方法,而非使用 append 方法,以免意外允許跨網站指令碼攻擊 (XSS) 錯誤,導致您附加的內容或標記造成程式碼執行異常。
// Log "<b>Hello, world!</b><p>Hello again, world.</p>" const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.appendUntrusted('<p>Hello again, world.</p>'); Logger.log(output.getContent());
參數
名稱 | 類型 | 說明 |
---|---|---|
added | String | 要附加的內容。 |
回攻員
Html
:這個輸出內容,用於鏈結。
擲回
Error
:如果 HTML 格式非常不正確
另請參閱
as Template()
傳回由此 Html
支援的 Html
。這個方法可用於逐步建構範本。Html
日後的變更也會影響 Html
的內容。
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); const template = output.asTemplate();
回攻員
Html
:新的 Html
。
clear()
清除目前的內容。
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.clear();
回攻員
Html
:這個輸出內容,用於鏈結。
get As(contentType)
將此物件內的資料傳回為轉換為指定內容類型的 Blob。這個方法會在檔案名稱中加入適當的副檔名,例如「myfile.pdf」。不過,系統會假設檔案名稱中最後一個句點 (如有) 後面的部分是應取代的現有副檔名。因此,「ShoppingList.12.25.2014」會變成「ShoppingList.12.25.pdf」。
如要查看轉換的每日配額,請參閱「Google 服務的配額」。新建立的 Google Workspace 網域可能會暫時受到更嚴格的配額限制。
參數
名稱 | 類型 | 說明 |
---|---|---|
content | String | 要轉換的 MIME 類型。對於大多數 Blob 而言,'application/pdf' 是唯一有效的選項。如果圖片為 BMP、GIF、JPEG 或 PNG 格式,'image/bmp' 、'image/gif' 、'image/jpeg' 或 'image/png' 也適用。如果是 Google 文件,'text/markdown' 也是有效的。 |
回攻員
Blob
:資料為 Blob。
get Blob()
get Content()
取得此 Html
的內容。
// Log "<b>Hello, world!</b>" const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); Logger.log(output.getContent());
回攻員
String
:放送的內容。
get Favicon Url()
透過呼叫 set
,取得網站小圖連結標記新增至網頁的網址。系統會忽略直接在 Apps Script HTML 檔案中加入的網站小圖連結標記。
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setFaviconUrl('http://www.example.com/image.png'); Logger.log(output.getFaviconUrl());
回攻員
String
:網站小圖示圖片的網址。
get Height()
取得 Google 文件、試算表或表單中自訂對話方塊的初始高度。如果 Html
改為以網頁應用程式形式發布,這個方法會傳回 null
。如要調整已開啟對話方塊的大小,請在用戶端程式碼中呼叫
google.script.host.setHeight(height)
。
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setHeight(200); Logger.log(output.getHeight());
回攻員
Integer
:高度 (以像素為單位)。
get Meta Tags()
透過呼叫 add
,取得代表加入至網頁的中繼標記的物件陣列。直接在 Apps Script HTML 檔案中加入的中繼標記會遭到忽略。
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.addMetaTag('viewport', 'width=device-width, initial-scale=1'); const tags = output.getMetaTags(); Logger.log( '<meta name="%s" content="%s"/>', tags[0].getName(), tags[0].getContent(), );
回攻員
Html
:代表透過呼叫 add
新增至網頁的中繼標記的物件陣列。
get Title()
取得輸出頁面的標題。請注意,系統會忽略 <title> HTML 元素。
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); Logger.log(output.getTitle());
回攻員
String
:網頁標題。
get Width()
取得 Google 文件、試算表或表單中自訂對話方塊的初始寬度。如果 Html
改為以網頁應用程式形式發布,這個方法會傳回 null
。如要調整已開啟對話方塊的大小,請在用戶端程式碼中呼叫
google.script.host.setWidth(width)
。
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setWidth(200); Logger.log(output.getWidth());
回攻員
Integer
:寬度 (以像素為單位)。
set Content(content)
設定此 Html
的內容。
const output = HtmlService.createHtmlOutput(); output.setContent('<b>Hello, world!</b>');
參數
名稱 | 類型 | 說明 |
---|---|---|
content | String | 要放送的內容。 |
回攻員
Html
:這個輸出內容,用於鏈結。
擲回
Error
:HTML 格式錯誤
set Favicon Url(iconUrl)
在頁面中加入 favicon 的連結標記。系統會忽略直接在 Apps Script HTML 檔案中加入的 favicon 連結標記。
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setFaviconUrl('http://www.example.com/image.png');
參數
名稱 | 類型 | 說明 |
---|---|---|
icon | String | 網站小圖示圖片的網址,其中圖片副檔名會指出圖片類型。 |
回攻員
Html
:這個輸出內容,用於鏈結。
set Height(height)
設定 Google 文件、試算表或表單中自訂對話方塊的初始高度。如果 Html
改為以網頁應用程式形式發布,這個方法就不會生效。如要調整已開啟對話方塊的大小,請在用戶端程式碼中呼叫
google.script.host.setHeight(height)
。
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setHeight(200);
參數
名稱 | 類型 | 說明 |
---|---|---|
height | Integer | 新的高度 (以像素為單位);null 會產生預設值。 |
回攻員
Html
:這個輸出內容,用於鏈結。
set Sandbox Mode(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 | Sandbox | 要使用的沙箱模式。 |
回攻員
Html
:這個輸出內容,用於鏈結。
set Title(title)
設定輸出頁面的標題。對於網頁應用程式,這是整個網頁的標題;對於 Google 試算表中顯示的 Html
,則是對話方塊標題。
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setTitle('My First Page');
參數
名稱 | 類型 | 說明 |
---|---|---|
title | String | 新的標題。 |
回攻員
Html
:這個輸出內容,用於鏈結。
set Width(width)
設定 Google 文件、試算表或表單中自訂對話方塊的初始寬度。如果 Html
改為以網頁應用程式形式發布,這個方法就不會生效。如要調整已開啟對話方塊的大小,請在用戶端程式碼中呼叫
google.script.host.setWidth(width)
。
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setWidth(200);
參數
名稱 | 類型 | 說明 |
---|---|---|
width | Integer | 新的寬度 (以像素為單位);null 會產生預設值。 |
回攻員
Html
:這個輸出內容,用於鏈結。
set XFrame Options Mode(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('<b>Hello, world!</b>'); output.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
參數
名稱 | 類型 | 說明 |
---|---|---|
mode | XFrameOptionsMode | 要設定的 XFrame 選項模式。 |
回攻員
Html
:這個輸出內容,用於鏈結。