跨域IFRAME调整大小

时间:2012-04-11 12:27:24

标签: html iframe cross-domain

我知道这个问题很多,但是当我无法访问IFRAME显示的实际页面时,如何设置跨域iframe的动态高度?

4 个答案:

答案 0 :(得分:3)

你做不到。由于all information about the document is protected来自第三方网站,因此无法知道框架中文档的高度是从框架外部开始的。

答案 1 :(得分:0)

如果您有权在父级和iframe页面上添加javascript,则可以将其添加到:

document.domain = 'mydomain.com';

这样可以避免跨域限制,并且可以嗅探高度以更改父页面中的iframe高度

答案 2 :(得分:0)

必须通过您自己的服务器代理页面(至少一次)

<?php
$homepage = file_get_contents('http://www.megaupload.com'); 
echo $homepage;
?>
<script>etc</script>

答案 3 :(得分:0)

我也有这个问题,但我终于得到了解决方案:

将此代码放在<head>

    <script type="text/javascript">
  function resizeCrossDomainIframe(id, other_domain) {
    var iframe = document.getElementById(id);
    window.addEventListener('message', function(event) {
      if (event.origin !== other_domain) return; // only accept messages from the specified domain
      if (isNaN(event.data)) return; // only accept something which can be parsed as a number
      var height = parseInt(event.data) + 0; // add some extra height to avoid scrollbar
      iframe.height = height + "px";
    }, false);
  };
</script>

然后,将此代码用于iframe:

<iframe src='http://www.example.com/my-iframe/' frameborder="0" id="my_iframe" onload="resizeCrossDomainIframe('my_iframe', 'http://www.example.com');">