iframe调整大小并跨站点脚本

时间:2012-06-28 22:02:40

标签: javascript iframe resize xss

这是问题所在!我有一个加载外部网站的iframe。我希望iframe根据内容高度调整为100%,这样我就不会得到滚动条。将iframe高度设置为100%不起作用。

我想出了两个解决方案:

  1. 将两端的document.domain属性设置为同一个域, 这使得iframe内容可以访问父窗口。的 resize方法可以从iframe内启动。
  2. 使用HTML5 postMessage API采取适当的措施。我用来在两个iframe之间进行交流。
  3. 这两种方法都很复杂。有没有更简单的方法解决这个问题?

3 个答案:

答案 0 :(得分:0)

您可以在iframe中嵌入另一个iframe。如果该iframe的来源来自同一个域,协议和端口作为顶级iframe,那么它可以通过parent.parent访问它。

答案 1 :(得分:0)

去年我遇到了同样的问题,并在此博客上找到了适用于我的解决方案: http://solidgone.org/Set-IFRAME-height-based-on-size-of-remotely-loaded-content

该方法的更新版本可在他的后续文章中找到:http://solidgone.org/Redux-Set-IFRAME-height-based-on-size-of-remotely-loaded-content

就像杰克所描述的那样,实现需要在您的页面中嵌入iframe,并使用相同父域的源。

我确实在FF中有一个小问题。解决方案可以在后续文章的评论中找到。

希望这有帮助!

答案 2 :(得分:0)

更简单的解决方案是在github上使用这个小项目。

https://github.com/davidjbradshaw/iframe-resizer