【问题标题】:How to insert my web page into an iframe?如何将我的网页插入 iframe?
【发布时间】:2009-06-17 04:45:14
【问题描述】:

我有一个为客户托管的网页。该页面上有客户端的页眉和页脚,我们的内容(一个 Flash 应用程序)放在中间。

客户现在希望向我们提供一个 html 页面,该页面在一个文档中包含他们的页眉、页脚和一些广告。他们希望我们将此文档作为 iframe 包含在内,然后将我们的内容动态放置在该框架内。

这对我来说似乎很老套,但我想我会试一试。那么,将我的标记放入 iframe 中的最佳方式是什么?

谢谢! 克里斯

【问题讨论】:

  • 那么客户端提供的这个 HTML 文档位于另一台服务器上?您的问题令人困惑的原因是您声明您是托管它的人。如果它在另一台服务器上,除非他们在文档中添加某种代码以允许您加载动态内容,否则您不能这样做。如果您能够在没有他们“许可”的情况下这样做,那么那里就有一个巨大的安全漏洞

标签: javascript html iframe


【解决方案1】:

由于 XSS 安全问题,无法在客户端完成...除非它们都在同一个域中,但根据您的描述,我对此表示怀疑。

服务器端,您可以动态读取目标页面,随意修改,然后呈现。如果您确实需要在 iframe 中使用它,您可以通过以下方式动态加载修改后的源代码:

<html>
<head></head>
<body>
<iframe id="blah"></iframe>
<script>
var doc=document.getElementById("blah").contentDocument;
doc.open();
doc.write("content");
doc.close();
</script>
</body>
</html>

请记住还要使用完整的 URL 更改任何链接、图像等。

【讨论】:

  • 有没有办法维护白名单等以允许某些域将我的应用程序嵌入 iframe ?
【解决方案2】:

您能否为他们提供一些他们可以使用的 API - 这样他们就可以在他们的页面中放置一些东西来调用您的位。当您使用 Flash 时,您可以通过包含策略文件以授予其域权限来避免跨站点脚本问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-05
    • 1970-01-01
    相关资源
    最近更新 更多