JS函数返回的div高度不正确。为什么?

时间:2012-10-30 11:40:56

标签: javascript

我尝试在页面上获取主div的大小,以使iframe将其高度更改为内容,但document.getElementById("divId").offsetHeight(也尝试innerHeight)返回错误的值。它总是返回247,但事实上页面看起来像削减了75%。我有一个想法,页面没有完全加载,所以我把调整大小的代码放在页面的页脚,但它仍然返回247。

$(document).ready(function() {
     console.log(document.getElementById("resizeDiv").offsetHeight);
});

有什么建议吗?

5 个答案:

答案 0 :(得分:0)

试试这个

$(document).ready(function() {
     console.log($("#resizeDiv").height());    }
);

答案 1 :(得分:0)

你已经在使用jQuery,为什么不尝试:

$(function() {
    $('#resizeDiv').height();
});

听起来您可能正在尝试根据其中的内容调整iFrame的大小。如果你想这样做,这个问题已在这里得到解答:

Resizing an iframe based on content

答案 2 :(得分:0)

document.getElementById("resizeDiv").offsetHeight,它以像素为单位给出元素的实际高度。该值包括任何填充和边框的高度。

document.getElementById("resizeDiv").style.height类似于.height,除非您要求样式属性的高度部分。

document.getElementById("resizeDiv").height仅在元素具有height属性(例如IMG标记)时有效:

<img src="..." width="200" height="300">

这是document.getElementById("resizeDiv").getAttribute("height")的简写。

答案 3 :(得分:0)

我已经找到了其他的决定,我只是获得身体的高度并且效果很好:

var height = Math.max(
    document.body.scrollHeight, 
document.body.clientHeight, 
document.body.offsetHeight, 
document.documentElement.scrollHeight, 
document.documentElement.offsetHeight, 
document.documentElement.clientHeight);

答案 4 :(得分:0)

在加载DOM之后,您可能需要加载函数。

window.addEventListener('DOMContentLoaded', (event) => {
  // do something
});

请参见Mozilla documentation

在完全加载并解析了初始HTML文档之后,无需等待样式表,图像和子帧完成加载,就会触发DOMContentLoaded事件。