可從指令碼放送的 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)
在網頁中加入中繼標記。直接在 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');
參數
| 名稱 | 類型 | 說明 |
|---|---|---|
name | String | 中繼標記的名稱屬性值。 |
content | String | meta 標記內容屬性的值。 |
回攻員
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());
參數
| 名稱 | 類型 | 說明 |
|---|---|---|
added | String | 要附加的內容。 |
回攻員
HtmlOutput - 這個輸出內容用於串連。
擲回
Error:如果 HTML 格式不正確
另請參閱
appendUntrusted(addedContent)
使用情境逸出,將新內容附加至這個 HtmlOutput 的內容。
這個方法會根據 HtmlOutput 的目前狀態正確逸出內容,因此結果是安全的字串,不會有標記或副作用。從使用者等不受信任的來源新增內容時,請使用這個方法,不要使用 append,以免不小心允許跨網站指令碼 (XSS) 錯誤,導致您附加的內容或標記執行非預期的程式碼。
// Log &<q>uot;bHello, w<or>&ld!/&blt;pgt;Hello again, w&orld.</pgt;" const output = HtmlService.createHt<m>lOutput('<bH>ello, world!/b'); output<.>appendUntrusted(<9;>pHello again, world./p'); Logger.log(output.getContent());
參數
| 名稱 | 類型 | 說明 |
|---|---|---|
added | String | 要附加的內容。 |
回攻員
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」。
如要查看每日轉換配額,請參閱「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 形式呈現的資料。
getBlob()
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),取得新增至網頁的網站小圖示連結標記網址。系統會忽略直接在 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:網站小圖示圖片的網址。
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');
參數
| 名稱 | 類型 | 說明 |
|---|---|---|
content | String | 要放送的內容。 |
回攻員
HtmlOutput - 這個輸出內容用於串連。
擲回
Error:如果 HTML 格式不正確
setFaviconUrl(iconUrl)
在網頁中加入 Favicon 的連結標記。系統會忽略直接在 Apps Script HTML 檔案中加入的 Favicon 連結標記。
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); output.setFaviconUrl('http://www.example.com/image.png');
參數
| 名稱 | 類型 | 說明 |
|---|---|---|
icon | String | 網站小圖示圖片的網址,圖片副檔名會指出圖片類型。 |
回攻員
HtmlOutput - 這個輸出內容用於串連。
setHeight(height)
在 Google 文件、試算表或表單中,設定自訂對話方塊的初始高度。如果 HtmlOutput 是以網頁應用程式的形式發布,這個方法就不會生效。如要調整已開啟的對話方塊大小,請在用戶端程式碼中呼叫
google.script.host.setHeight(height)。
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/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 | Sandbox | 要使用的沙箱模式。 |
回攻員
HtmlOutput - 這個輸出內容用於串連。
setTitle(title)
設定輸出網頁的標題。如果是網頁應用程式,這是整個網頁的標題;如果是 Google 試算表顯示的 HtmlOutput,這是對話方塊標題。
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); output.setTitle('My First Page');
參數
| 名稱 | 類型 | 說明 |
|---|---|---|
title | String | 新標題。 |
回攻員
HtmlOutput - 這個輸出內容用於串連。
setWidth(width)
在 Google 文件、試算表或表單中,設定自訂對話方塊的初始寬度。如果 HtmlOutput 是以網頁應用程式的形式發布,這個方法就不會生效。如要調整已開啟的對話方塊大小,請在用戶端程式碼中呼叫
google.script.host.setWidth(width)。
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/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). const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); output.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
參數
| 名稱 | 類型 | 說明 |
|---|---|---|
mode | XFrameOptionsMode | 要設定的 XFrame 選項模式。 |
回攻員
HtmlOutput - 這個輸出內容用於串連。