在“击败死马”评论开始之前,让我澄清一下我想要做些什么来看看是否有人可以帮助我。
我有一个带有iFrame的父窗口。 iFrame中的内容是从一个单独的域加载的,这是我认为我的问题开始的地方,尽管它需要这样。当页面最初加载时,我有以下运行:
<script language="javascript" type="text/javascript">
var reportFrame = document.getElementById('report');
function resizeIframe() {
var height = document.documentElement.clientHeight;
height -= reportFrame.offsetTop;
// not sure how to get this dynamically
height -= 20; /* whatever you set your body bottom margin/padding to be */
reportFrame.style.height = height + "px";
}
reportFrame.onload = resizeIframe;
window.onresize = resizeIframe;
</script>
这很有效。 iFrame没有任何滚动条,看起来很完美。我遇到的问题是iFrame有一个按钮,可以在框架上进行回发。我需要在iFrame重新加载时运行此脚本,以防止显示任何滚动条。由于子页面位于一个单独的域中,我无法将它从一个函数调用到父级(非常确定这是XSS发挥作用的地方)所以我需要想出另一种方式让父母知道它需要运行此脚本,因为iFrame正在重新加载。
有什么建议吗?
答案 0 :(得分:2)
您可以添加一个定时检查并定期调整大小的计时器:
setInterval( "resizeIframe()", 1000 ); //check every second
[编辑 - 调整大小脚本的链接]
有关调整iframe大小的脚本,请查看http://geekswithblogs.net/rashid/archive/2007/01/13/103518.aspx和Resizing an iframe based on content。