在iFrame中嵌入Google Apps脚本

Tec*_*nic 8 javascript iframe same-origin-policy google-apps-script google-apps-script-web-application

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

我想要做的是(我删除了完整的链接):

<iframe src="https://script.google.com/a/macros/SCRIPT_ID"></iframe>
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

Refused to display 'https://script.google.com/a/macros/SCRIPT_ID' 
in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.
Run Code Online (Sandbox Code Playgroud)

有没有办法改变策略并加载iFrame中的内容?

Dmi*_*try 15

谷歌刚刚启用了此功能.它已经在很长一段时间内处于"功能请求"状态.链接在这里

您现在可以显式定义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);
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!

  • 这仍然有效吗?因为我仍然将“X-Frame-Options”设置为“SAMEORIGIN”。 (2认同)

Che*_*are 5

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

   <form method="POST" id="ss-form" target="_top" action="<?!=SETTINGS.PUBLISHED_URL?>">
   
Run Code Online (Sandbox Code Playgroud)