【问题标题】:App Script HTMLService App in iFrameApp Script HTMLService App in iFrame
【发布时间】:2013-05-24 09:48:10
【问题描述】:

是否可以在 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”。

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

【问题讨论】:

标签: google-apps-script


【解决方案1】:

2017 年 3 月 24 日更新

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

// 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);

【讨论】:

  • 谢谢埃里克。你知道为什么不吗?作为企业经销商,这对于将 HtmlService 应用程序集成到现有的内部企业 Web 应用程序或 Intranet 站点中非常有用。您能否详细说明为什么(还)不可用?这个问题最初来自我试图在 chrome 扩展中嵌入 HtmlService 应用程序。然后,我会强制将 chrome 扩展程序提供给域中的所有用户。最终用户将在试点期间使用该应用程序来获取非正式反馈。有什么想法或解决方法吗?
  • 我认为目前存在安全隐患。
  • 好的。谢谢。我构建了一个解决方法,以拥有一个标准的 html 表单,该表单使用查询字符串中的数据发送 get 请求。我的 Chrome 扩展程序运行良好。
  • 我这样做了,但它仍然无法正常工作。具体来说,我创建了一个网络应用程序,显示来自谷歌工作表的表格(根据bpwebs.com/pull-data-from-google-sheets-to-html-table),并希望将其嵌入到 wordpress 页面中。
【解决方案2】:

看来你可以使用 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

【讨论】:

    【解决方案3】:

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

    client_side_handler(JSON HERE...);
    

    在您的客户端页面中,您将有一个脚本,内容如下:

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

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

    【讨论】:

    • 你可以根据文档
    猜你喜欢
    • 1970-01-01
    • 2012-08-08
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-22
    • 2019-08-13
    相关资源
    最近更新 更多