我整整都在为此苦苦挣扎,令人难以置信。我的网站上有一个选项,用户可以在其中下载与特定用户的完整聊天记录,而不必在线加载它,并且很可能使他们的浏览器崩溃。无论如何,当他们请求下载历史记录时,将创建一个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>


我不确定这是否对您有用,但对我而言确实有用。

09-11 01:42
查看更多