3

我想在 DOM 上的 javascript 操作完成时根据 html 元素的高度对网页布局进行最终调整。此操作必须立即执行,因此我不想使用setTimeout函数。我尝试了以下方法,但在其他函数完成对 DOM 的操作之前它运行得太早了:

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

对 DOM 的操作包括隐藏文档的某些部分,从而缩短 html 元素的高度。我不想在这些 javascript 函数中使用回调函数,因为它们中有几个,并且必须在所有网页上应用最后的调整。

有什么方法可以单独使用javascript来完成吗?

4

1 回答 1

0

有(有)DOMMutationEvents - 缓慢且未得到广泛支持。DOM MutationObserver是新事物——尽管浏览器支持仍然很低。

在不同的浏览器上可靠(且快速)地做到这一点是不可能的。


如果您将 jQuery(专门)用于您的 DOM 操作业务,您可以查看cssHooks。但是,只要通过 jQuery 以外的任何方式修改了 DOM,该选项就会失败。

于 2012-06-18T10:53:10.120 回答