我正在使用Google Apps脚本“Enum Sandbox Iframe模式”创建Google网站。
在Google Developer Docs,它说,要调用自定义函数,我们需要使用google.script.run
样品:
Code.gs
function doGet() { return HtmlService.createHtmlOutputFromFile('index') .setSandboxMode(HtmlService.SandboxMode.IFRAME); } function doSomething() { Logger.log('I was called!'); }
的index.html
<script> google.script.run.doSomething(); </script>
当我使用谷歌浏览器运行时,它的工作完美。但它在Mozilla Firefox中引发了错误。 ReferenceError: google is not defined
。
有谁知道背后的原因?任何帮助将不胜感激。
更新
提交了Google代码中的错误:https://code.google.com/p/google-apps-script-issues/issues/detail?id=4652&thanks=4652&ts=1419836713&
答案 0 :(得分:3)
所有浏览器都不支持IFRAME模式
此模式比其他沙盒模式施加更少的限制并且运行速度最快,但在某些旧版浏览器中根本不起作用,包括Internet Explorer 9
https://developers.google.com/apps-script/reference/html/sandbox-mode
您现在必须切换到EMULATED或NATIVE。 IFRAME模式是新的,也许随着时间的推移会有更多的支持。
function doGet() {
return HtmlService.createHtmlOutputFromFile('index')
.setSandboxMode(HtmlService.SandboxMode.NATIVE);
}