質問

jQuery 1.3.2を使用しています。

正しい「高さ」を取得できません。 Internet Explorer6。高さの値は他のすべてのブラウザで正しい。

wresize jQueryプラグイン

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

IE 6の$( 'body')。height()の戻り値は、ブラウザのサイズを変更するたびに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グリッドの高さを設定するためのものです。コードが改善される可能性があるという事実を無視します。 :)

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

ご意見をお寄せください!

役に立ちましたか?

解決

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

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

他のヒント

もちろん、ここにいくつかのアイデアがあります:

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

また、あなたがページに表示されていることを確認してください-このため、絶対位置を使用して一時的に画面から物を捨ててから、画面上に再び表示する必要がある場合があります。

別のことは、height()が時々不安定になることです。 .css( 'height')を試して高さを取得し(より高速です)、より正確な測定値である の 'px'を削除します。

またはjQueryの Dimensionsプラグインを使用すると、さらに多くの作業とクロスブラウザです。

こちら

のように、ドラッグ可能からドロップ可能に線を引くためにこのプラグインを使用します
$('body').height(); // call this first

iframeH = $('body').height(); //then try this
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top