我正在使用新的Google协作平台,并在其侧面有一个Google Apps脚本。我这样输出了一些HTML:
function doGet() {
return HtmlService
.createTemplateFromFile('index')
.evaluate()
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}
然后我转到Google网站并执行:
Insert -> Embed -> By URL
我这样插入网址:
https://script.google.com/macros/s/*mashes keyboard*/exec
现在我要去:
https://sites.google.com/view/myexamplesite
Voila!我看到了我梦embedded以求的嵌入式应用程序脚本。现在这是令人难过的地方。接下来,我将返回网站编辑器,并从Google域返回add my very own custom domain。然后我去:
https://www.myexamplesite.com
现在嵌入式Google Apps脚本有这样的错误:
script.google.com refused to connect.
并在控制台日志中:
Refused to display 'https://script.google.com/macros/s/*mashes keyboard*/exec' in a frame because it set 'X-Frame-Options' to 'sameorigin'.
那太糟了。 。 。 。
因此,我尝试将自己的iframe嵌入在embed选项中,而不是像这样:By URL
嵌入:
<iframe
width="100%"
src="https://script.google.com/macros/s/*mashes keyboard*/exec">
</iframe>
现在我前往该站点,它看上去真糟透了,我开始与iframes
进行长时间的战斗而产生噩梦般的倒叙。我确实在某个地方看过书,但现在找不到参考资料,因为Google Sites都是Google,所以它们确实以一种特殊的方式加载了Apps脚本,因此By URL
选项为什么运行得如此好并且看起来不错。
我将Apps脚本项目连接到与域相关联的Google IAM组织拥有的Google Console项目。但是,让我让我改变Apps脚本的URL没什么。
是否有关于如何使URL嵌入选项与自定义域一起使用的想法?我可以让Apps脚本项目成为同一域的一部分,因此它是同一来源吗?我是否只需要硬着头皮做很多事情就可以在iframe中破解它?