2013-05-29 48 views
2

可以将HTMLService应用嵌入到iframe中吗?iFrame中的应用脚本HTMLService应用

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

应用程序可以被嵌入谷歌网站内,但不进任何其他标准的网页。控制台抛出错误...

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

如果您需要更多信息,请让我知道。

+0

这是问题跟踪项目,您可以添加您的详细信息和星/遵循此功能要求 - https://code.google.com/p/google-apps-script-issues/issues/detail?id=2394 –

+0

感谢您的评论 –

回答

3

更新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); 
+0

谢谢埃里克。你知道为什么不?作为企业转售商,将HtmlService应用程序集成到现有企业内部Web应用程序或Intranet站点中将非常有用。你能否给我详细说明为什么没有这个功能? 这个问题最初来自于我试图在Chrome扩展中嵌入HtmlService应用程序。然后,我会强制将Chrome扩展插件发布给域中的所有用户。终端用户在试用期间将使用该应用来捕获非正式反馈。任何想法或解决方法? –

+1

我相信目前有安全问题阻止它。 –

+0

好的。谢谢。我构建了一个解决方法,使标准html表单发送带请求字符串中数据的get请求。我的Chrome扩展程序运行良好。 –

-1

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

client_side_handler(JSON HERE...); 

而且在客户端页面,您将有一个脚本的东西,如:

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

要调用的应用程序脚本,你就会有另一个脚本标记,指定的应用程序脚本作为一个src。谢天谢地,脚本标签没有iframes的跨站点限制。

+0

您可以根据文档 – drmartin