3

これはよく聞かれることですが、IFRAME が表示している実際のページにアクセスできない場合、クロス ドメイン iframe の動的な高さを設定するにはどうすればよいですか?

4

4 に答える 4

3

できません。ドキュメントに関するすべての情報はサードパーティのサイトから保護されているため、フレーム内のドキュメントの高さをフレームの外側から知る方法はありません。

于 2012-04-11T12:59:18.510 に答える
0

親ページと iframe ページの両方に JavaScript を追加するアクセス権がある場合は、これを両方に追加できます。

document.domain = 'mydomain.com';

このようにして、クロスドメインの制限を回避し、高さをスニッフィングして親ページの iframe の高さを変更できます

于 2012-04-11T12:50:23.947 に答える
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');">
于 2014-01-25T16:24:02.143 に答える
0

独自のサーバーを介してページをプロキシする必要があります(少なくとも1回)

<?php
$homepage = file_get_contents('http://www.megaupload.com'); 
echo $homepage;
?>
<script>etc</script>
于 2012-04-12T10:14:17.020 に答える