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

Javascript JS函数返回的div高度不正确。为什么?,javascript,Javascript,我尝试获取页面上主div的大小,以使iframe将其高度更改为内容,但document.getElementById(“divId”)。OfftheSight(也尝试innerHeight)返回错误的值。它总是返回247,但事实上,page看起来像是削减了75%。我有一个想法,页面没有完全加载,所以我把调整大小代码放在页面的页脚,但它仍然返回247 $(document).ready(function() { console.log(document.getElementById("r

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

$(document).ready(function() {
     console.log(document.getElementById("resizeDiv").offsetHeight);
});
有什么建议吗?

试试这个

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

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

$(function() {
    $('#resizeDiv').height();
});
听起来您可能正试图根据iFrame中的内容调整iFrame的大小。如果您正试图这样做,此问题已在此处得到回答:


document.getElementById(“resizeDiv”)。在视线之外,它以像素为单位给出元素的实际高度。该值包括任何填充和边框的高度


document.getElementById(“resizeDiv”).style.height与.height类似,只是要求输入style属性的height部分


document.getElementById(“resizeDiv”).height仅在元素具有高度属性(如IMG标记)时有效:

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


它是document.getElementById(“resizeDiv”).getAttribute(“height”)
的缩写

我找到了另一个决定,我只是得到了身体的高度,效果很好:

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

加载DOM后,可能需要加载函数

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

DOMContentLoaded事件在初始HTML文档完全加载和解析后激发,而不等待样式表、图像和子帧完成加载


console.log(document.getElementById(“resizeDiv”).height);给予?在
$(窗口)中进行。加载(
而不是在
$(文档)中)。准备就绪(
jQuery
.height()是什么)
give?另外,你的HTML/CSS可能对回答这个问题至关重要。你能在上面设置一个演示吗?返回的值可能是正确的,但你期望的是不同的。这取决于你的元素在HTML/CSS中的定义。JS的原始高度方法和Jquery的wrap之间有什么区别?:-)我想没有,因为Jquery调用原始JS方法。我检查了,它给出了相同的值。查看Jquery源代码$(target)。height()是$(target.css('height')的别名;