簡體   English   中英

Internet Explorer 6的jQuery height()問題

[英]jQuery height() problems with Internet Explorer 6

我正在使用jQuery 1.3.2。

我無法在Internet Explorer 6中獲得正確的“高度”。所有其他瀏覽器中的高度值都是正確的。

我也在使用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網格的高度。 忽略代碼可能更好的事實。 :)

除了“身體”之外我還能用什么東西來幫我正確嗎? 我已經嘗試過窗口對象($(window).height()),但這似乎沒什么幫助。

任何想法都表示贊賞!

您遇到的問題更可能是css渲染差異。 由於瀏覽器之間的浮動問題,填充和邊距渲染差異。

嘗試獲取$(“body”)。innerHeight()$(“body”)。outerHeight()並在不同的瀏覽器中比較它們,你會得到一些共同的結果。 在最壞的情況下,你可能需要運行一些if case

當然,這里有幾個想法:

用IE,特別是 老IE,我喜歡在我的高度渲染功能周圍添加一個1-10ms的setTimeout語句 - 它給dom和IE一個“放松”的機會

此外,確保頁面上顯示的是東西 - 為此,您可能需要使用絕對位置暫時將某些內容從屏幕上拋出,然后再次在屏幕上顯示它們。

另一件事是高度()有時是不穩定的。 嘗試使用.css('height')來檢索高度[它也更快]並刪除'px'以獲得有時更真實的測量結果。

或者使用Dimensions插件來獲取jQuery,它可以為您提供更多工作,並且它是跨瀏覽器。

我使用這個插件來繪制從可拖動到可放置的線條,就像我在這里展示的那樣

$('body').height(); // call this first

iframeH = $('body').height(); //then try this

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM