获取/设置iframe内容的问题

时间:2014-07-11 09:44:57

标签: javascript html iframe

我在这里读到,iframe在跨域内容方面存在局限性。但这是否意味着不允许从同一域加载另一个文件?我尝试使用此代码时未成功,但只有iframe源文件相同时才会生效,即。的index.html:

的index.html

<html>
  <body>
    <!-- re-loading itself works -->
    <!-- iframe id="myFrame" width="640" height="480" src="index.html"></iframe-->

    <iframe id="myFrame" width="640" height="480" src="anotherFile.html"></iframe>

    <script type="text/javascript">
      window.onload = function()
      {
        setTimeout(function()
        {
          iframeWin = document.getElementById("myFrame");
          iframeWin.height = iframeWin.contentDocument.body.offsetHeight + "px";
        }, 1000);
      }
    </script>   
  </body>
</html>

由于外部文件要求,我无法发布到jsFiddle。

编辑: anotherFile.html 的内容:

    <html>
        <body>
            <p>Lorem Ipsum is simply dummy text<br> 
            of the printing and typesetting industry.<br> 
            Lorem Ipsum has been the industry's standard<br>
            dummy text ever since the 1500s, when an...</p>
        </body>
    </html>

2 个答案:

答案 0 :(得分:2)

您可以通过iframe的onload事件而非setTimeOut

来尝试此操作
 <iframe id="myFrame" width="640" height="480" src="response.html"  onload="myFunction()"></iframe>

<script type="text/javascript">
 function myFunction(){
      iframeWin = document.getElementById("myFrame");
      iframeWin.height = iframeWin.contentDocument.body.offsetHeight + "px";
 }
</script> 

答案 1 :(得分:0)

解决!显然,问题在于Google Chrome中的安全设置:

此功能适用于FireFox和MSIE,如果从网络服务器运行,则适用于Chrome。