4

我正在使用 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()),但这似乎没有多大帮助。

任何想法表示赞赏!

4

4 回答 4

5

您面临的问题更有可能是 css 渲染差异。由于浮动问题,不同浏览器之间的填充和边距渲染差异。

尝试获取$("body").innerHeight()$("body").outerHeight()并在不同的浏览器中进行比较,您会得到一些共同的结果。在最坏的情况下,您可能需要运行某些if情况

于 2009-05-11T11:58:11.763 回答
1

当然,这里有几个想法:

使用 IE,尤其是。较旧的 IE,我喜欢在我的高度渲染函数周围添加一个 1-10 毫秒的 setTimeout 语句——它让 dom 和 IE 有机会“放松”

此外,请确保您的内容在页面上可见——为此,您可能需要使用绝对位置暂时将内容从屏幕上扔掉,然后再次在屏幕上显示它们。

另一件事是 height() 有时很不稳定。尝试 .css('height') 检索高度 [它也更快] 并删除 'px' 以获得有时更真实的测量值。

于 2009-04-29T18:52:26.523 回答
1

或者使用 jQuery 的Dimensions 插件,它可以让您使用更多,并且它是跨浏览器。

我使用这个插件来绘制从可拖动到可放置的线条,就像我在这里展示的那样

于 2009-05-11T12:04:31.340 回答
-2
$('body').height(); // call this first

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