Internet Explorer 6的jQuery height()问题
-
03-07-2019 - |
题
我正在使用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'以获取有时更真实的测量值。
$('body').height(); // call this first
iframeH = $('body').height(); //then try this
不隶属于 StackOverflow