在 iFrame 中嵌入 Google Apps 脚本

Embedding Google Apps Script in an iFrame

我正在尝试将使用 Google Apps 脚本中的 Javascript 动态构建的页面嵌入到我的 iFrame 网站中,但未显示 iFrame 的内容。 Google Apps 脚本有一个同源策略,阻止它加载。

我想做的是(我删除了完整的link):

<iframe src="https://script.google.com/a/macros/SCRIPT_ID"></iframe>

我得到的错误是:

Refused to display 'https://script.google.com/a/macros/SCRIPT_ID' 
in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.

有没有办法更改策略并将内容加载到 iFrame 中?

Google 最近刚刚启用了此功能。它已经处于 'feature request' 状态很长时间了。 Link here

您现在可以显式定义 X-Frame-Options。

要允许嵌入到另一个域下,选项应为 HtmlService.XFrameOptionsMode.ALLOWALL

Google 有关该主题的文档:

https://developers.google.com/apps-script/reference/html/html-output#setXFrameOptionsMode(XFrameOptionsMode)

示例:

function doGet() {
    return HtmlService.createTemplateFromFile('form.html')
        .evaluate() // evaluate MUST come before setting the Sandbox mode
        .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}

希望对您有所帮助!

我在 doPost 响应表单上遇到了这个问题,只是在开发模式下,并通过在初始 doGet 表单上将 target="_self" 更改为 target="_top" 来更正它。

   <form method="POST" id="ss-form" target="_top" action="<?!=SETTINGS.PUBLISHED_URL?>">