1

私は多くのことを読んでいますが、これができるかどうかはわかりません。これについては、誰もが異なるアプローチをとっています。

3 番目のパートナー サイトにリンクしているサイトがありますが、さらにセキュリティ ハンドルを介して、3 番目のパートナー サイトは、自分のサイトにログインしていないユーザーを許可しません。このコメントのヒントは、サード パートナーのコードを 1 行も変更する方法がないことです。

一方、私は自分のサイトに次の 2 つの html を持っています。

  1. <iframe>3 つ目のパートナー サイトとの連携。
  2. 「ここをクリックして、そこに移動」のように、ガイドとして iframe で機能する<div>with 。position:absolute

これまでのところ、次の JQuery スクリプトを使用して iframe の高さをベンダー ドキュメントに合わせて調整します。

<script type="text/javascript">
function adjustmyiframe() {
var theFrame = $('#iFrameToAdjust', parent.document.body);
theFrame.height($(document.body).height() + 100);
}
</script>

私のiframeは次のとおりです。

<iframe 
id="iFrameToAdjust" 
onload="adjustmyiframe();"
width="100%"
height="100%" name="myiframe" frameborder="1" vspace="0" hspace="0"
marginwidth="0" marginheight="0" scrolling="no" noresize

 src="http://externalsite"></iframe>

繰り返しますが、これまでのところとても良いです。しかし、ユーザーが iframe 内のリンクをクリックすると、もちろんベンダー サイトがリロードされて高さが異なり、iframe は再び調整されません。

だから私の質問は:

  • ベンダー サイトが高さを調整したり、新しいページをロードしたりするたびに、iframe の高さを自動的に調整できますか? そして、どうすればそれを行うことができますか?
  • タイマーオプションのパフォーマンスは本当に悪いですか?

よろしくお願いいたします

4

1 に答える 1

1

この場合、イベントのリッスンを避け、再帰的にポーリングするのが最善かもしれませんsetTimeout

function adjustmyiframe() {
    var theFrame = $('#iFrameToAdjust', parent.document.body);
    theFrame.height($(document.body).height() + 100);
    setTimeout(adjustmyiframe, 1000); // check again in 1 second.
}
于 2012-09-19T20:51:09.980 に答える