Enum SandboxMode

沙箱模式

代表可用於用戶端 HtmlService 指令碼的沙箱模式的列舉。您可以透過 HtmlService.SandboxMode 存取這些值,並透過呼叫 HtmlOutput.setSandboxMode(mode) 進行設定。

如要呼叫列舉,請呼叫其父項類別、名稱和屬性。例如 HtmlService.SandboxMode.IFRAME

NATIVEEMULATED 模式已於 2015 年 10 月 13 日淘汰,且現已停用。目前僅支援 IFRAME 模式。

為避免使用者收到惡意 HTML 或 JavaScript,從 HTML 服務提供的用戶端程式碼會在安全沙箱中執行,對程式碼施加限制。HtmlOutput.setSandboxMode(mode) 方法先前允許指令碼作者選擇不同版本的沙箱,但現在已無效。詳情請參閱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>

屬性

屬性類型說明
EMULATEDEnum舊版沙箱模式,只使用 ECMAScript 3 中的功能模擬 ECMAScript 5 嚴格模式。在 2014 年 2 月之前,這個模式是預設模式。

EMULATED於 2015 年 12 月 10 日停用。所有嘗試使用 EMULATED 的指令碼,現在都會改用 IFRAME

IFRAMEEnum沙箱模式,使用 iframe 沙箱,而非 EMULATEDNATIVE 模式使用的 Caja 沙箱技術。自 2015 年 11 月 12 日起,新指令碼的預設模式為此模式;自 2016 年 7 月 6 日起,所有指令碼的預設模式為此模式。

這個模式的限制比其他沙箱模式少很多,且執行速度最快,但在某些較舊的瀏覽器 (包括 Internet Explorer 9) 中完全無法運作。

NATIVEEnum以 ECMAScript 5 嚴格模式為基礎的沙箱模式。這是以 ECMAScript 5 嚴格模式為基礎所建構的沙箱模式。這項模式已於 2016 年 7 月 6 日停用。所有指令碼現在都使用 IFRAME 模式。