4

jQuery 1.3.2 を使用しています。

Internet Explorer 6 で正しい「高さ」を取得できません。高さの値は、他のすべてのブラウザで正しく表示されます。

wresize jQuery pluginも使用しています。

ブラウザーが読み込まれるたびに、ブラウザーのサイズに基づいて div と iframe のサイズを変更するメソッドを起動します。(これにはちゃんとした理由があります。)

$('body').height() の戻り値は、IE 6 では、ブラウザのサイズが変更されるたびに 10 ピクセル追加されるようです。

他の誰かがこのようなものに出くわしますか?

var iframeH = 0, h = 0, groupH = 0, adjust = 0;

var tableH = $("#" + gridId + "_DXHeaderTable").parent().height();
var pagerH = $(".dxgvPagerBottomPanel").height();
var groupHeight = $(".dxgvGroupPanel").height();

if (pagerH == null)
    pagerH = 0;

if (groupHeight != null)
    groupH = groupHeight + pagerH;

iframeH = $('body').height();
h = (iframeH - (tableH + pagerH + groupH));

$('#' + gridId + "Panel").css("height", (h + "px"));
$("#" + gridId + "_DXMainTable").parent().css("height", (h + "px"));

このコードは、親コンテナの DevExpress グリッドの高さを設定するためのものです。コードが改善される可能性があるという事実を無視してください。:)

正しいサイズを取得するために使用できる「ボディ」以外のものはありますか? ウィンドウ オブジェクト ($(window).height()) を試しましたが、あまり役に立たないようです。

どんな考えでも大歓迎です!

4

4 に答える 4

5

あなたが直面している問題は、css レンダリングの違いである可能性が高くなります。フローティングの問題、パディング、マージンのレンダリングがブラウザ間で異なるためです。

$("body"). innerHeight ()$("body").outerHeight()を取得して、異なるブラウザで比較すると、いくつかの共通の結果が得られます。if最悪の場合、いくつかのケースを実行する必要があるかもしれません

于 2009-05-11T11:58:11.763 に答える
1

確かに、ここにいくつかのアイデアがあります:

IE、および特に。古い IE では、高さレンダリング関数の周りに 1 ~ 10 ミリ秒の setTimeout ステートメントを追加するのが好きです。これにより、dom と IE に「リラックス」する機会が与えられます。

また、自分のコンテンツがページに表示されていることを確認してください。このためには、絶対位置を使用して一時的に画面からアイテムを削除し、再度画面に表示する必要がある場合があります。

もう 1 つのことは、height() が不安定な場合があることです。高さを取得するには .css('height') を試してください [これも高速です]

于 2009-04-29T18:52:26.523 に答える
-2
$('body').height(); // call this first

iframeH = $('body').height(); //then try this
于 2011-11-09T08:48:04.243 に答える