我整整都在为此苦苦挣扎,令人难以置信。我的网站上有一个选项,用户可以在其中下载与特定用户的完整聊天记录,而不必在线加载它,并且很可能使他们的浏览器崩溃。无论如何,当他们请求下载历史记录时,将创建一个zip存档,其中包含每天的历史记录文件-如果他们没有足够强大的计算机来一次打开所有文件,并创建一个包含所有历史记录文件的索引文件。 Iframe的形式(而不是将相同的内容写在2个地方)。
问题:我要做的就是将Iframe的高度设置为其内容的高度,令人惊讶的是,由于其同源政策,在Chrome中这似乎是不公平的。我首先以为我可以让孩子Iframe的身体滚动高度好起来,但后来SOP拒绝了,打了我一脸。然后,我想可以从历史记录文件内部将html标记的style.height设置为完整高度,然后检索它,但同样失败。
我真的开始失去希望了,有人可以帮我吗?
最佳答案
在iframe内容页面和调用iframe的页面中,输入以下内容:
<script>
document.domain = 'http://yoursite.com'; (NOT www.)
</script>
另外,请确保您在不使用
www.
的情况下调用iframe,做:
<iframe onload = "setIframeHeight( this.id )" ...>
iFrameHeight()
像这样:<script>
document.domain = 'http://yoursite.com';
function setIframeHeight( iframeId )
{
var ifDoc, ifRef = document.getElementById( iframeId );
try
{
ifDoc = ifRef.contentWindow.document.documentElement;
}
catch( e )
{
try
{
ifDoc = ifRef.contentDocument.documentElement;
}
catch(ee)
{
}
}
if( ifDoc )
{
ifRef.height = 1;
ifRef.height = ifDoc.scrollHeight;
}
</script>
我不确定这是否对您有用,但对我而言确实有用。