iFrame中的App脚本HTMLService应用程序

时间:2013-05-29 08:16:27

标签: google-apps-script

是否可以在iframe中嵌入HTMLService应用程序?

嵌入式示例:http://jsbin.com/axesex/1/edit

该应用可以嵌入Google网站,但不能嵌入任何其他标准网页。控制台抛出错误......

  

拒绝在一个框架中显示“https://script.google.com/a/macros/netpremacy.com/s/AKfycbxITmxBMsHIh_u82tbvfICzNesEUJh2MRe7izyDE9cgvaLPCZI/exec”,因为它将“X-Frame-Options”设置为“SAMEORIGIN”。

如果您需要更多信息,请告诉我们。

3 个答案:

答案 0 :(得分:3)

2017年3月24日更新

是的,但您需要在输出上设置一个额外的标志,以允许它为IFRAMEd:

// Serve HTML with no X-Frame-Options header (in Apps Script server-side code).
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);

答案 1 :(得分:0)

看来你可以使用setxframeoptionsmodemode:

来做到这一点
//-- Serve HTML with no X-Frame-Options header (in Apps Script server side code).
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);

可以在以下方面阅读更多相关信息: https://developers.google.com/apps-script/reference/html/html-output#setxframeoptionsmodemode

答案 2 :(得分:-2)

可能的等价物可能是使用JSONP。基本上修改Google Apps脚本以输出JSON(文本/ javascript mime类型),该JSON作为参数传递给函数(您将在客户端创建。应用程序脚本的输出将如下所示:< / p>

client_side_handler(JSON HERE...);

在您的客户端页面中,您将拥有类似以下内容的脚本:

function client_side_handler(json){
    //make all my wildest dreams come true here.
}

要调用apps脚本,您将拥有另一个脚本标记,将app脚本指定为src。值得庆幸的是,脚本标签没有iframe所具有的跨站点限制。