列舉代表可用於用戶端 HtmlService
指令碼的沙箱模式。這些值可透過 HtmlService.SandboxMode
存取,並透過呼叫 HtmlOutput.setSandboxMode(mode)
進行設定。
如要呼叫列舉,您可以呼叫其父項類別、名稱和屬性。例如
HtmlService.SandboxMode.IFRAME
。
NATIVE
和 EMULATED
模式已於 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>
屬性
屬性 | 類型 | 說明 |
---|---|---|
EMULATED | Enum | 舊版沙箱模式,僅使用 ECMAScript 3 提供的功能,模擬 ECMAScript 5 嚴格模式。此模式是 2014 年 2 月前的預設模式。
|
IFRAME | Enum | 採用 iframe 沙箱機制的沙箱模式,而非 EMULATED 和 NATIVE 模式使用的 Caja 沙箱技術。自 2015 年 11 月 12 日起,所有指令碼均預設使用這個模式。這個模式設下的限制比其他沙箱模式少很多,而且執行速度最快,但在某些舊版瀏覽器 (包括 Internet Explorer 9) 中都無法正常運作。 |
NATIVE | Enum | 以 ECMAScript 5 嚴格模式為基礎建構的沙箱模式。以 ECMAScript 5 嚴格模式為基礎建構的沙箱模式。這個模式自 2016 年 7 月 6 日起停用。所有指令碼現在都使用 IFRAME 模式。 |