我正在使用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'以获取有时更真实的测量值。

或使用jQuery的维度插件,为您提供更多工作和帮助它是跨浏览器。

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

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

iframeH = $('body').height(); //then try this
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top