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 模式。