1

ユーザーがクリックするリンクに応じて動的コンテンツを持つ IFrame があります。

IFrame を表示する実際のコードは次のようになります。

var frame = $('#ContentFrame');
frame.attr('src', url);

// Wait until frame content finishes loading before positioning and showing
frame.load(function () {
    SizeAndPositionFrame(variables);
    frame.show();
});

ご覧のとおり、コンテンツが読み込まれるまで、フレームは実際には表示されません。これは、フレームのサイズが異なる可能性があるためです。新しいコンテンツが読み込まれる前に、フレームのサイズ変更によって以前のコンテンツが歪むことは望ましくありません。

私の問題は、コンテンツ フレームのページの一部に、特定のオブジェクト$(document).ready()を必要とする関数のコードが含まれていること.height()です。IE7 では、フレームの読み込みが終了して iframe が表示されるまで、この高さは 0 です。

.height()コンテンツを表示しているフレームが表示されていないために表示されていない非表示オブジェクトを取得するにはどうすればよいですか?

注: これは組み込みの IE7 Web ブラウザー用であるため、ソリューションはIE7 と互換性がある必要があります。

4

1 に答える 1

1

iFrame を表示しますが、ビューポート内には表示しません。

frame.css({
    position: 'absolute',
    left: '9000px'
});

ただし、クラスを簡単に削除できるように、クラスでこれを行う方がよいでしょう。

于 2012-10-19T14:29:01.090 に答える