表示可用于客户端 HtmlService
脚本的沙盒模式的枚举。这些值可以从 HtmlService.SandboxMode
访问,并通过调用 HtmlOutput.setSandboxMode(mode)
进行设置。
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 日起,默认此模式为 2016 年 7 月 6 日之后所有脚本的默认模式。与其他沙盒模式相比,这种模式施加的限制要少得多,运行速度最快,但在某些旧版浏览器(包括 Internet Explorer 9)中根本不起作用。 |
NATIVE | Enum | 以 ECMAScript 5 严格模式为基础构建的沙盒模式。以 ECMAScript 5 严格模式为基础构建的沙盒模式。此模式已于 2016 年 7 月 6 日停用。所有脚本现在都使用 IFRAME 模式。 |