如何在 JavaScript 操作 DOM 后立即获取 HTML 元素的高度?

3

我希望根据DOM操作完成时html元素的高度对网页布局进行最终调整。这个动作必须是即时的,因此我不想使用setTimeout函数。我已经尝试了以下方法,但它在其他函数还没有完成DOM操作之前就运行了:

document.onreadystatechange = function () {  
 if(document.readyState == 'complete') {  
  alert(document.getElementsByTagName('html')[0].offsetHeight);
 }  
};

DOM的操作包括隐藏文档的某些部分,从而缩短html元素的高度。由于有多个这样的javascript函数,并且需要在所有网页上应用这个最终调整,我不想在这些函数中使用回调函数。

有没有仅使用javascript就能完成这个任务的方法呢?

1个回答

0

有(曾经有)DOMMutationEvents - 速度慢且不被广泛支持。DOM MutationObserver 是新的可供使用的选择 - 浏览器支持仍然很低。

在不同的浏览器中,无法可靠且快速地完成此操作。


如果您在处理DOM操作时仅使用jQuery,可以查看cssHooks。但是,如果DOM被其他方式修改,这种选择就会失败。


你能展示一下如何修改我上面的代码以便使用这个函数吗?谢谢。 - Question Overflow

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接